Как создать постоянный URL для динамической веб-страницы Ajax - PullRequest
0 голосов
/ 23 июля 2011

Мне нужно работать с веб-страницей с поддержкой ajax, чтобы я мог передавать идентификатор или идентификаторы в URL, и он будет отображать результаты только на основе переданных идентификаторов (идентификаторов). Для старой страницы cgiЯ мог бы сделать: http://myurl? Id = 1 , есть ли способ сделать это для страниц Ajax?Спасибо,

Дэвид

Ответы [ 3 ]

2 голосов
/ 23 июля 2011

Simplest - используйте якоря и событие hashchange для изменения состояния URL-адреса (вам в основном понадобится shiv для старых браузеров , таких как IE 6 и 7). Когда страница загружается впервые, проанализируйте хеш и загрузите то, что вам нужно, через ajax. (Пример библиотеки, которая поможет с этим плагином jQuery bbq Бена Алмана .) Ваши URL в этом случае будут выглядеть так:

http://example.com/entry/point#/my/app%3Fq=1

Neater - используйте новый history API до pushState при изменении страницы для новых браузеров и откат на hashchange для браузеров, которые не поддерживают новый HTML5 совершенство. (Примером библиотеки, которая помогает с этим, является плагин Ben Lupton's History.js ). Ваши URL для новых браузеров будут выглядеть так:

http://example.com/my/app?q=1

в то время как URL для браузеров, которые не поддерживают новый API, увидят hashchange URL.

Самое лучшее - используйте полную схему маршрутизации или MVC и не изобретайте колесо заново. Примеры включают, но не ограничиваются:

Обратите внимание, что с более новым history API вы действительно должны убедиться, что все ваши URL действительно доступны и могут использоваться без JavaScript. (Поэтому, если вы вставите http://example.com/my/app?q=1 в стек истории, вы сможете набрать этот URL в адресную строку браузера и просто перейти туда.)

0 голосов
/ 23 июля 2011

Если вы можете использовать JSP, это будет работать ...

<body onload='initViaAjax();'>
<div id='insertHTML'></div>
<input id='passedID' type='hidden' value='<%=request.getParameter("id")%>'/>

GetParameter заполнится значением вашего идентификатора строки запроса.Событие onload может получить доступ к этому значению и использовать его при вызове ajax.Результат ajax можно вставить в тег div.

0 голосов
/ 23 июля 2011

Конечно, сделайте ваш XmlHttpRequest с запросом get и добавьте свой параметр в строку URL, так же, как вы сделали бы это при вызове страницы.Вы должны "создать" свой URL, используя JavaScript.

Если вы используете jQuery, вы можете просто использовать метод $ .get ().

Если вы используете собственные методы DOM, вам нужно создать XMLHttpRequest с соответствующим URL и обратным вызовом.

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