Как я могу сохранить значение для переменной в Javascript, даже когда веб-страница перезагружается? - PullRequest
1 голос
/ 09 января 2012

Я студент колледжа, немного новичок в веб-программировании, и в последнее время я, так сказать, "врезался в стену".

Трудно объяснить мою проблему, так как я не понимаю всего, что происходит, но друг направил меня на этот веб-сайт, и я надеюсь, что приведенные здесь указания направят меня в правильном направлении.

Вот что я пытаюсь сделать: Создать инвентарь, к которому можно получить доступ через веб-страницу через несколько компьютеров, и который может редактировать каждый пользователь.

Что я уже сделал: Я создал страницу HTML и добавил Javascript. Javascript взаимодействует с количеством предметов в инвентаре, и пользователь может изменить количество определенного предмета, когда они забирают предмет или добавляют предмет. Но когда страница перезагружается, числа возвращаются к их значению по умолчанию, равному нулю.

Я исследовал редактирование файлов cookie через Javascript, но это работает только для одного компьютера. Та же проблема с "window.name". Я немного заглянул в базы данных, затем вздрогнул и быстро закрыл дверь. Если база данных является единственным вариантом, то может кто-нибудь указать мне на учебник для начинающих баз данных?

С моей точки зрения, главная проблема, которую я имею, - это изменение переменной в Javascript на веб-странице, а затем каким-то образом сохранить эту переменную в документе в ОДНОМ месте. Таким образом, каждый компьютер, подключенный к этой сети, может обращаться к переменным и изменять их по мере необходимости.

Буду признателен за любую помощь в этом вопросе!

Ответы [ 5 ]

4 голосов
/ 09 января 2012

С моей точки зрения, главная проблема, которую я имею, - это изменение переменной в Javascript на веб-странице, а затем каким-то образом сохранить эту переменную в документ в одном месте. Таким образом, каждый компьютер, подключенный к этому Сеть может обращаться к переменным и изменять их по мере необходимости.

Это, друг мой, это база данных. Да, база данных - это решение. Что вам нужно понять в первую очередь о веб-разработке, так это то, что есть два вида: клиентская и серверная. Javascript - это разработка на стороне клиента, то есть он работает в браузере пользователя. У вас есть переменная на стороне клиента, но только этот клиент может видеть ее. Серверная сторона отличается. Он существует только на сервере. Ваш сервер «обслуживает» вашу страницу (и любой контент из базы данных или чего-либо еще) клиенту. Поэтому любые изменения на сервере будут видны всем клиентам (что вы хотите). Чтобы программировать на стороне сервера, вы должны использовать другой язык, отличный от javascript (вы можете использовать node.js, но он полностью отличается от javascript на стороне клиента). Другие языки включают PHP, Java, C # и т. Д.

Поэтому вам нужно поискать сценарии на стороне сервера.

4 голосов
/ 09 января 2012

Извините, что говорю вам об этом, но для того, чтобы иметь централизованное хранилище, которое вы собираетесь иметь, вам необходим сервер.JavaScript был / все еще является клиентской стороной, поэтому он будет работать одновременно для нескольких человек.

Чтобы это работало, вам нужен сервер.Локальное хранилище не будет работать, потому что тогда не у всех людей будут одинаковые данные.

2 голосов
/ 09 января 2012

Вам понадобится язык бэкэнда,

, такой как php, asp, .net, java и т. Д.

Используя этот язык бекенда, вы сможете выполнять запросы к базе данных,например, база данных mysql,

Я бы порекомендовал вам взглянуть на php и mysql, поскольку они оба бесплатны:

http://php.net, http://mysql.com

чтобы вы быстро работали для отладки НЕ для производства, попробуйте WAMP:

http://www.wampserver.com/en/

0 голосов
/ 10 января 2012

Есть несколько частей для реализации приложения общего инвентаря.На самом высоком уровне вы можете разбить это на передачу данных между браузерами и сервером (взаимодействие клиент-сервер, которое будет основано на HTTP и включает технологии, такие как AJAX) и совместное использование данных между запросами.Первый был многократно освещен в SO (см. Связанные вопросы в разделе «Связанные» в правой части страницы).Последнее также было рассмотрено, но, возможно, не так напрямую, поэтому информация разбросана.

Точный дизайн и реализация обоих зависит от того, какие технологии на стороне сервера у вас есть.Подход ASP.Net будет немного отличаться от подхода PHP, который будет отличаться от подхода JSP.Каждый из них имеет свой способ сохранения данных таким образом, чтобы к ним могли обращаться несколько пользователей.Вот некоторые основные способы: общая память , файлы и (как вы уже упоминали) базы данных.

Прежде чем отказываться от баз данных , имейте в виду, что существует множествосложные задачи, связанные с данными , которые должны быть выполнены.Если вы не используете базу данных, вам нужно реализовать ее самостоятельно.В конце концов, вы завершите реализацию какой-либо базы данных, которая, вероятно, имеет меньше возможностей, больше ошибок, работает хуже и потребует от других разработчиков, которые могут работать над проектом (проекты могут жить дольше, чем вы ожидаете), чтобыСначала изучите вашу систему хранения данных.

0 голосов
/ 09 января 2012

Вы можете избежать создания собственной базы данных и хранить данные инвентаризации в каком-либо облачном хранилище, например в Google Spreadsheet. Но, конечно, это также потребует некоторого изучения.

Если у вас есть учетная запись Google, проще всего создать электронную таблицу, подходящую для хранения ваших ресурсов, а затем сгенерировать веб-форму из этой электронной таблицы. Наконец, просто вставьте эту сгенерированную форму в ваш HTML, и все готово. Все изменения в инвентаре будут отражены в электронной таблице документа Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...