Кнопка мобильного обновления jQuery - PullRequest
5 голосов
/ 26 мая 2011

У меня проблемы при добавлении нового контента в базу данных, страницы не обновляются. Поэтому я подумывал добавить кнопку обновления.

Надеюсь, я могу это сделать, пожалуйста?

Ответы [ 2 ]

10 голосов
/ 04 июля 2011

Проблема, с которой вы столкнулись, связана с тем, как jQuery Mobile кэширует страницы.И location.reload(true) не будет работать , так как URL будет содержать строку хеша.

Причина:

Для эмуляции собственных мобильных переходов jQuery Mobile выполняет запрос Ajax ивставляет элемент <div data-role="page"> внутрь first страницы, по существу создавая одностраничный сайт из многостраничного (со встроенной навигацией и закладками).

решение:

Однако команде не хватило некоторого предвидения, как обращаться с содержимым, зависящим от времени.Я лично исправил проблему, добавив к своим ссылкам атрибут, который я хочу получить свежую копию .

$('body').delegate('a[data-cache=false]', 'click', function() {
    var $this = $(this);

    $('[data-url="' + $this.attr('href') + '"]' ).remove();

});

Это прослушивает событие щелчка (нажатие, что угодно), удаляет кэшированный div и позволяет jQuery запросить свежую копию.

Примечание:

Существует множество решений для этого, таких как data-ajax="false" и rel="extenal", однако они остановятсянавигационная система функционирует, чтобы функционировать в полной мере.Также команда jQuery знает о проблемах, связанных с этим, и в настоящее время работает над полной перепиской навигации.http://jquerymobile.com/blog/2011/05/13/jquery-mobile-team-update-week-of-may-9th/.

2 голосов
/ 26 мая 2011

Вам не нужен jQuery для обновления страницы.Вам просто нужно вызвать location.reload(true).

Установив первый (и единственный) аргумент в true мы принудительно обновить с сервера, а не просто перезагрузить страницу скэш.

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