Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Таблица рекордов (https://javascript.ru/forum/misc/24579-tablica-rekordov.html)

function 06.01.2012 16:11

Таблица рекордов
 
Привет всем! Я новичок на форумах да и в JS тоже. Для одной игры хочу сделать таблицу рекордов, чтобы она не сбрасывалась после обновления страницы.
Работать должна так: есть некая переменная (a), если другая переменная (b) равна 1, то спросить сохранять ли результат (a). Если да то добавить результат в таблицу ниже (при этом вытеснить более маленький (не более 5 результатов в таблице), и недобавлять его если он меньше самого маленького в таблице) и построить все результаты в порядке убывания.
В принципе могу всё сделать сам, но таблица станет пустой после обновления. Можно ли с помощью JS и html всё это дело сохранять? Если да, то прошу рассказать как.

Livaanderiamarum 06.01.2012 16:14

localstorge

Livaanderiamarum 06.01.2012 16:16

вот тебе немного моих наработок)

функция storge()
принимает 2 параметра
первый ИМЯ, второй значение. Так же в значение можно передавать обьекты {}.
например storge('рекорды' , {'саша' : 200, 'маша' : 200} )

чтобы получить значение передаешь просто имя ключа
var qq = storge('рекорды')


// localstorge
storge = function() {
	// если аргумент один
	if (arguments.length == 1) {
		var arg1 = arguments[0];
		// если первый аргумент строка
		if (typeof arg1 == 'string') {
			var retString = localStorage.getItem(arg1);
			if (retString == null) {
				return false
			}
			var last = retString.length - 1;
			// если строка в сторче похожа на json обьект
			if ((retString[0] == '{' && retString[last] == '}')
					|| (retString[0] == '[' && retString[last] == ']')) {
				// то распарсить и вернуть обьект
				return JSON.parse(retString)
			}// если нет
			else {// то вернуть просто строку
				return retString
			}
		}// если первый аргумент обьект
		else if (typeof arg1 == 'object') {
			for (prop in arg1) {// то засунуть значения и ключи в сторч
				try {
					localStorage.setItem(prop, arg1[prop]);
					return true
				} catch (e) {
					if (e == QUOTA_EXCEEDED_ERR) {
						alert('Локальное хранилище переполнено');
						return false
					}
				}
			}
		}
		// если аргумента два
	} else if (arguments.length == 2) {
		var arg1 = arguments[0];
		var arg2 = arguments[1];
		// если второй аргумент строка или номер
		if (typeof arg2 == 'string' || typeof arg2 == 'number') {
			try {
				// то засунуть ключ и значение в сторч
				localStorage.setItem(arg1, arg2)
				return true
			} catch (e) {
				if (e == QUOTA_EXCEEDED_ERR) {
					alert('Локальное хранилище переполнено');
					return true
				}
			}

		}// если второй аргумент null
		else if (arg2 == null) {
			// то удалить значение и ключ
			localStorage.removeItem(arg1)
			return true
		}
		// если второй аргумент обьект
		else if (typeof arg2 == 'object') {
			try {
				// то преобразовать в json строку и засунуть в сторч
				localStorage.setItem(arg1, JSON.stringify(arg2))
				return true
			} catch (e) {
				if (e == QUOTA_EXCEEDED_ERR) {
					alert('Локальное хранилище переполнено');
					return true
				}
			}
		}
	}
}
// очистить сторч
storge.clear = function() {
	localStorage.clear()
}

Gvozd 06.01.2012 16:20

Livaanderiamarum,
Ты подлый.
Хотя бы упомянул бы, что данное решение сохранит данные только в браузере пользователя, и другие пользователи увидят своб таблицу рекордов

Livaanderiamarum 06.01.2012 16:22

Так он же так и просил вроде, нет?
п.с. Версия древняя я её год назад писал) надо будет переписать седня)

а, да, удалять значеня моно так вроде
storge('рекорды', null)

function 06.01.2012 16:30

Да не мне нужно не в браузере, а для всех. Может простенькую CMS сделать? Ток я в этом совершенно неразбираюсь :(

Livaanderiamarum 06.01.2012 16:34

Цитата:

Сообщение от function (Сообщение 148362)
Да не мне нужно не в браузере, а для всех. Может простенькую CMS сделать? Ток я в этом совершенно неразбираюсь :(

да, сделай простенькую CMS, хорошая идея. мой совет, не используйте вебсокеты.

function 06.01.2012 16:44

Можно ссылку на "учебник для создания простеньких CMS, обновляющих таблицу рекордов". :)

Livaanderiamarum 06.01.2012 16:49

Цитата:

Сообщение от function (Сообщение 148370)
Можно ссылку на "учебник для создания простеньких CMS, обновляющих таблицу рекордов". :)

не:dance:

Кстати, а что такое CMS? Я прост не опытный в этом деле) че эт такое то своими словами)?

function 06.01.2012 16:58

Вот тебе на латышском расшифровка)
Satura vadības sistēma

function 06.01.2012 17:00

Ну реально ссылку киньте на что-нибуль такое

Livaanderiamarum 06.01.2012 17:05

Ну от куда мы возьмем её, а?? Или это "погуглите за меня я дурачок..." ?
php.su только знаю, хороший сайт

Gvozd 06.01.2012 17:09

Цитата:

Сообщение от function
простеньких CMS, обновляющих таблицу рекордов

нет такого понятия, поэтому и книги такой быть не может

Учите серверный язык(например PHP).
Еще желательно научится работать с СУБД(например MySQL), но для такой задачи вовсе необязательно

function 06.01.2012 17:29

Цитата:

Сообщение от Livaanderiamarum
Ну от куда мы возьмем её, а??

Ну кто-то же здесь умеет делать CMS, и наверняка они учились на каком-то сайте.
Цитата:

Сообщение от Gvozd
простеньких CMS, обновляющих таблицу рекордов
нет такого понятия, поэтому и книги такой быть не может

Это была шутка. Я имел ввиду что из полученых через JS данных она перестроит html-код таблицы рекордов.
Цитата:

Сообщение от Gvozd
Учите серверный язык(например PHP).

Уже учу, но пока остановился на привыкании к тому, что в if-блоке у переменных остаются знаки доллара.

P.S. У меня одного с отображением форума чёрти-чего творится?

monolithed 06.01.2012 17:34

Цитата:

Сообщение от function
Ну кто-то же здесь умеет делать CMS, и наверняка они учились на каком-то сайте.

Вообще, какое отношение ваша задача имеет к CMS?

Цитата:

Сообщение от function
Я имел ввиду что из полученых через JS данных она перестроит html-код таблицы рекордов.

Ну так делайте, как что-то будет обращайтесь, а пока за вас писать код никто не будет

function 06.01.2012 17:38

Цитата:

Сообщение от monolithed
вообще, какое отношение ваша задача имеет к CMS?

А вот какое:
Цитата:

Сообщение от function
Я имел ввиду что из полученых через JS данных она перестроит html-код таблицы рекордов.

Был неуверен может такое или нет:
Цитата:

Сообщение от function (Сообщение 148362)
Да не мне нужно не в браузере, а для всех. Может простенькую CMS сделать? Ток я в этом совершенно неразбираюсь :(

Цитата:

Сообщение от Livaanderiamarum
да, сделай простенькую CMS, хорошая идея. мой совет, не используйте вебсокеты.


Livaanderiamarum 06.01.2012 17:59

Цитата:

Сообщение от function (Сообщение 148394)
А вот какое:

Был неуверен может такое или нет:

что такое CMS вы так и не рассказали мне(( почему вы меня игнорируете?

monolithed 06.01.2012 18:13

Цитата:

Сообщение от Livaanderiamarum
что такое CMS вы так и не рассказали мне

CMS
Цитата:

Сообщение от Livaanderiamarum
почему вы меня игнорируете?

потому что в гугле первой же ссылкой дается на это ответ

Livaanderiamarum 06.01.2012 18:15

Цитата:

Сообщение от monolithed (Сообщение 148403)
CMS

потому что в гугле первой же ссылкой дается на это ответ

оой, смотрите ка и правда дается),я просто гуглить не люблю, сначала спрашиваю а потом если ни кто не знает гуглить начинаю))
^__^
постойте, но Как система управления контентом относится к таблице рекордов)? ВЫ мне точно ту ссылку дали)?

function 06.01.2012 22:38

Вообщем учу php, а потом уже пытаюсь сделать таблицу рекордов.


Часовой пояс GMT +3, время: 07:13.