JavaScript и стек - PullRequest
       24

JavaScript и стек

0 голосов
/ 19 марта 2009

Я использую JavaScript для хранения значений в стеке. Проблема в том, что значение стека остается активным до обновления страницы. Когда страница обновляется, значение в значении стека устанавливается на «Не определено». Лучше ли реализовать место для постоянного хранения значений стека?

Тогда, даже если страница обновлена, можно получить старое значение стека.

Как реализовать приведенный ниже фрагмент стека в сценарии PHP?

   var arr = new Array();
   var pushed = arr.push(id);  // For pushing into the stack
   arr.splice(0,arr.length); // For deleting the stack

Как обратиться к хранимым в PHP значениям в JavaScript?

Ответы [ 5 ]

4 голосов
/ 19 марта 2009

Если я правильно интерпретирую ваш вопрос, вы спрашиваете, могут ли объекты JavaScript сохраняться после обновления страницы?

К сожалению, при загрузке новой страницы все объекты JavaScript теряются. Они не выдерживают обновления страницы.

Я бы предложил использовать куки. Я не достаточно посвящен, чтобы написать код для вас прямо сейчас, но обычно:

Когда вы извлекаете / извлекаете из стека, сохраняете стек в файле cookie, который сохраняется на компьютере клиента. Когда страница загружается в первый раз (или обновляется в вашем примере), найдите этот файл cookie и запишите постоянный стек в свой объект JavaScript.

Посмотрите на эти страницы, чтобы помочь сохранить файлы cookie из JavaScript:

  1. ссылки Дэвида Винтерботтома
  2. печенье
  3. Файлы cookie JavaScript
3 голосов
/ 31 марта 2009

Другим способом решения этой проблемы является не обновление страницы, а перезагрузка ее тела, формы или элемента div с использованием Ajax. jQuery делает это особенно простым:

$('body').load(url);

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

1 голос
/ 19 марта 2009

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

1 голос
/ 19 марта 2009

Предполагая, что вы хотите, чтобы определенные значения в переменных JavaScript сохранялись между загрузками страниц, вы можете либо сделать то, что предложил Damovisa, либо просто использовать скрытое поле для хранения значений стека в некоторой форме. Может быть строка с разделителями-запятыми или что-то в этом роде.

Преимущество очевидно. Ваша программа не будет зависеть от того, в браузере клиента включены файлы cookie.

В качестве альтернативы, если это возможно, вы можете сохранить свой стек в некоторой серверной переменной и затем динамически вставить это значение в код JavaScript при визуализации страницы.

Будет очень полезно, если вы расскажете нам больше о вашей программе.

Если вы хотите, чтобы значения переменных PHP отражались в вашем коде JavaScript, вставьте теги PHP в свой код JavaScript.

Например:

<script>
    var str = "<?php echo $my_str; ?>";
    //Do something with str
</script>

Обязательно включите кавычки ("), иначе значение в строке будет считаться токеном JavaScript и может вызвать ошибку.

0 голосов
/ 19 марта 2009

Не совсем уверен, что вы спрашиваете
Если вы хотите реализовать фрагмент с помощью объекта, попробуйте что-то вроде этого:

var obj = {};
obj[key] = id; // to add
obj = {};      // to remove all items
del obj[key];  // to remove 1 item
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...