2009-05-03 4 views
2

Im, использующий структуру iUI для создания сайта. Если вы не знакомы с этим, у вас есть одна страница, состоящая из div, и вы наворачиваете пользователя между идентификаторами фрагментов.Перенаправление/обновление идентификатора фрагмента

Проблема с этим заключается в том, что пользователь добавляет контент, который не отображается до тех пор, пока он не обновится. В моей настройке они добавляют данные в список через jquery post, но, как я уже сказал, они ничего не видят до обновления, и как только вы делаете обновление, он переходит к родительскому div, когда #фрагмент потерян.

Таким образом, мне удалось получить страницу, чтобы перейти на mywebsite.com/#_fragment после обновления, используя window.location = mywebsite.com/#_fragment, но на самом деле не перезагружает страницу.

У кого-нибудь есть подсказки, как обновить страницу до фрагмента?

ответ

7

Идентификаторы фрагментов URI являются только клиентскими и не отправляются на сервер, то есть, если вы проверяете заголовок HTTP-запроса, вы не увидите #_фрагмент. Кроме того, внесение изменений в URI, которые только модифицируют фрагмент, не будет инициировать никаких событий DOM.

Хотя есть временные решения, такие как использование вызова setInterval() для активного мониторинга свойства document.location.hash, проще всего просто изменить строку запроса arg. Например, вместо:

window.location = mywebsite.com/#_fragment 

включает в себя строку запроса компонент, как:

window.location = mywebsite.com/?refresh=1#_fragment 

присутствие (или любая другая пара ключей/значения) будет вызывать браузер «обновить = 1?» для запроса на сервер, сохраняя идентификатор #hash.

Смотрите здесь для получения дополнительной информации об объекте местонахождения JS: http://docs.sun.com/source/816-6408-10/location.htm

1

Я считаю, что вы будете использовать ВМИ для создания iPhone дружественный веб-приложение. Я не уверен, что вы уже оценили iWebkit за то же или нет. Я посмотрел на iUI и iWebkit и нашел, что iWebkit будет гораздо более популярным, стабильным & легко реализовать.

+0

Я посмотрел на iWebkit после вашего сообщения. Это похоже на немного более дружелюбие, чем iUI. Единственным недостатком является iUI, который прокручивает каждую страницу красиво, когда iWebkit сбрасывает адресную строку для каждой страницы. Также с iUI каждый javascript загружается один раз, и это он. Похож на то, что webkit загрузит, что для каждой страницы, которая в зависимости от вашего плана данных может оказаться очень дорогостоящей. Говоря, что вы можете уменьшить javascript только до того, что требуется для этой страницы. Качели и круглые. – 2009-05-07 09:07:29

+0

вы можете использовать jquery или любую структуру ajax, чтобы оставаться на одной странице, не выбирая адресную строку. Я делаю это так, так что в основном я укусил некоторые штуки из iUI в iWebkit, что делает смертельную комбо и дает вам гораздо большую гибкость. – Vikram

+0

, когда я говорю несколько частей iUI, я имею в виду концепцию сохранения на одной странице, а не всплытие адресной строки, а не буквальное кодирование фрагментов из iUI. вы можете разработать свою собственную стратегию в соответствии с вашими требованиями. – Vikram