1. Не работает в Opera Mini
2. Не стоит хранить в URI личные данные.
Если туда впихнуть в JSON объект, ссылка может получиться длинной.
В таком случае можно исползват массив с только значениями объекта.
Например есть объект:
Код:
|
{
"page": "planner",
"start": "@20",
"end": "@35",
"lang": "ru"
} |
ОБЪЕКТ
У вас получится
#state={"page":"planner","start":"@20","end":"@35","lang":"ru"}
МАССИВ
Но можно решить что у вас ключи идут в таком порядке: "page" "start" "end" "lang"
Тогда получится (исползуя в качестве разделителей "/")
#state=planner/@20/@35/ru
В hash можно запихнуть только массив
#planner/@20/@35/ru
У вас было
site.com/page#section01&&state={param01:0001, ... , paramN:1000}
Можно переделать например в
site.com/page#section01/0001/ ... /1000
P. S. Я сам часто использую такой подход (используя событие hashchange или history.pushState/history.replaceState), поскольку именно нравится то, что
1) работает навигация
2) возможно добавить ссылку в закладки или скопировать и отправить кому-то и увидят тоже самое
3) если ссылки на странице сформулированы в виде <a href="#something">(в случае със hashchange) то при переходе по ней не происходит перезагрузки