Показать сообщение отдельно
  #2 (permalink)  
Старый 09.07.2016, 13:15
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

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) то при переходе по ней не происходит перезагрузки
Ответить с цитированием