Есть несколько способов сделать это, ни один из которых не является оптимальным.
- Вы можете сохранить все в памяти, "подделав" разные страницы, используя URL-адреса хеш-бэгов
- вы можете отправлять их через обычные параметры получения, но, как вы, вероятно, уже знаете, так как вы задаете этот вопрос, это имеет ограничения
- , вы можете использовать html5 localstorage, но так как это не поддерживается ничем, кроме новейших браузеров, этоне подходит для производственного сайта, который должен быть нацелен на широкую аудиторию
- вы можете использовать куки, но здесь вы столкнетесь с теми же ограничениями, что и параметры get urls
- Вы можете использовать флэш-память, но для этого требуется, чтобы на каждой странице было загружено приложение флэш-памяти, а некоторые пользователи могут не иметь флэш-памяти или могли отключить локальное хранилище флэш-памяти
Лучшее решение, на мой взгляд, # 2: использовать параметры get url исохранить состояние через URL.Помните об ограничениях длины URL-адреса в различных браузерах и «сжимайте» ваши данные, чтобы они минимизировали свою занимаемую площадь.
Обычно это можно сделать с использованием как можно меньшего числа параметров URL-адреса, держа бит, разделенный запятыми.flags.
Так, например, вы можете изменить параметры URL-адреса с
?cars=ford,bmw,vw,mazda
на ?c=23
, а затем проверить c
поразрядно с предопределенными переменными, такими как:
var BMW = 1, VW = 2, FORD = 4, KIA = 8, MAZDA = 16;
if(c & BMW) { bmw is set}
if(c & VW) { vw is set}
if(c & FORD) { ford is set}
if(c & KIA) { kia is set}
if(c & MAZDA) { mazda is set}
Этот пример не предназначен для того, чтобы быть симпатичным, только для того, чтобы показать концепцию.
Если вы минимизируете свой URL-адрес, вы можете хранить огромное количество данных в URL-адресе, ивы вряд ли столкнетесь с ограничениями размера URL.