2014-01-15 3 views
1

Простите меня, я очень новичок в программировании вообще, особенно Javascript. В основном я получил массив, как показано ниже.Можете ли вы навсегда добавить массив в Javascript?

var recipes = [ 
    { "recipeName":"Recipe1" , "ingredient1":"Recipe1Ingredient1" , "ingredient2":"Recipe1Ingredient2" , "ingredient3":"Recipe1Ingredient3"}, 
    { "recipeName":"Recipe2" , "ingredient1":"Recipe2Ingredient1" , "ingredient2":"Recipe2Ingredient2" , "ingredient3":"Recipe2Ingredient3"}, 
]; 

На одной странице пользователи могут искать рецепты. С другой стороны, они могут добавлять рецепты в массив через HTML-форму. У меня есть следующее, которое подталкивает новые данные к массиву.

recipes.push({"recipeName":newRecipeName , "ingredient1":newIngredient1 , "ingredient2":newIngredient2 , "ingredient3":newIngredient3}); 

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

Я предполагаю, что решение для этого не так просто, но я искал это некоторое время и много сделал для поиска. Может ли кто-нибудь указать мне в правильном направлении? Снова извиняюсь за мою неопытность, я очень новичок в программировании.

+3

Вам понадобится постоянное хранилище, и для этого база данных будет звучать как наиболее подходящий вариант. – adeneo

+0

Главное, что вам нужно помнить, это то, что каждый раз, когда страница обновляется, она не знает данных, которые были на предыдущей странице. Можно реализовать такую ​​«память» и передавать данные с одной страницы на другую. Как уже упоминалось в предыдущем комментарии, постоянное хранение - это то, что вы ищете. Это может быть полнофункциональная база данных, или это может быть полудолгосрочное хранилище в самом браузере. – Lix

+0

у вас есть 2 варианта. Загрузите массив в браузер или отправьте его в базу данных. База данных будет намного более надежной. –

ответ

5

Главное, что вам нужно помнить, что каждый раз, когда страница обновляется, она не знает данных, которые были на предыдущей странице. Как упоминалось в a previous comment, постоянное хранилище - это то, что вы ищете. Это может быть сделано в виде полнофункциональной (NoSQL/RDBMS) базы данных или в некоторой другой полупостоянной форме, хранящейся только в браузере.

Вы можете либо начать использовать полнофункциональную базу данных, либо если хотите что-то более легкое, вы можете использовать local storage или cookies. Следует отметить, что, если вы не реализуете что-то на стороне сервера, например: база данных, изменения будут постоянными только для пользователя и только до тех пор, пока они не очистят кеш.

+0

Помните, если я добавлю [мой комментарий] (http: //stackoverflow.com/questions/21144565/can-you-permanently-add-to-an-array-in-javascript#comment31822917_21144565) в ваш ответ? – Lix

+0

Полностью, вперед. – zero298

Смежные вопросы