Двойная прямая косая черта хорошо в фрагменте URL-хэша - PullRequest
2 голосов
/ 16 декабря 2011

Я строю фрагмент строки в javascript из формы и настройки с помощью window.location.hash.Если пользователь оставит поле ввода пустым, результирующий URL может быть

example.com/#search/cars//blue//mazda

Обратите внимание на //

Если, скажем, была введена цена, это будет

 example.com/#search/cars/20000/blue//mazda

Теперь это работает нормально.Это плохая практика?

Ответы [ 2 ]

0 голосов
/ 16 декабря 2011

Это не незаконно, но немного небрежно.

Используя событие window.hashchange, вы можете делать некоторые интересные вещи.Вам просто нужно помнить, чтобы отменить событие при нажатии, чтобы оно не выполняло двойное обновление.Вы должны определить, когда происходит событие, и соответственно изменить форму, например, когда пользователь использует кнопку «Назад», она изменит форму в соответствии с состоянием URL-адреса, но вы должны различать, когда хэш изменяется при выполнении сценария илипользователь нажимает назад / вперед.У меня есть код, который делает это, если вы хотите посмотреть.

При выполнении хэш-URL-адресов для электронной коммерции они также должны совпадать с реальными URL-адресами, чтобы их можно было индексировать, если вы перечисляли перестановки для SEO.Они также должны работать, используя историю для назад / вперед.Я написал некоторый код для этого, и вы можете добавить его в закладки в AJAX или фактической ссылке URL ( www.kitgui.com / docs и www.klim.com / en-us / shop имногое другое вы можете увидеть через www.emeraldcode.com ).

0 голосов
/ 16 декабря 2011

Я думаю, что pushState и другие методы History API настолько зарождаются, что стандарты еще не развивались. Как открывается недавняя работа в W3 по Повторное использование хеш-знака для новой сети :

Знак хеша (#) в URI изначально использовался для введения статического «идентификатор фрагмента», но в последнее время он используется во многих других сложные способы, как это установлено и интерпретируется JavaScript в Web приложения.

Использование обычного двойного слэша в имени пути может нарушать обычное поведение, но фрагмент хеша может быть любой произвольной строкой. Сделайте typeof, и вы увидите, что это просто обычная строка. Это не стандартно и поэтому может оттолкнуть типичный пользовательский интерфейс. Однако, с точки зрения кода, я думаю, что вы можете чувствовать себя свободными от двойных слешей, тройных слешей или чего-то еще.

Следует иметь в виду, что экранированные символы декодируются при чтении из свойства window.location.hash.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...