jQuery-мобильные и устаревшие данные в страницах - PullRequest
6 голосов
/ 06 февраля 2011

Я только начинаю экспериментировать с jQuery и пытаюсь применить его к очень простому приложению CRUD, которое состоит из списка, создания, редактирования и отображения страниц.

Я применил правила разметки jQuery-mobile, и все выглядит очень хорошо. Однако меня смущает проблема обновления устаревших данных. Я понимаю, что jQuery-mobile переопределяет ссылки и отправляет формы с помощью AJAX для создания «одностраничного приложения». Опять же, это работает для меня, и все мои data-role="page" вещи загружаются и переходят правильно.

Чего я не понимаю, так это того, что когда я изменяю данные (например, отправляю форму для создания нового элемента и затем возвращаюсь обратно на страницу «списка»), необходимо обновить некоторые страницы с сервера, чтобы забрать измененные данные. данные. JQuery-mobile просто отображает ранее загруженную страницу, которая теперь устарела. Точно так же, каждый раз, когда я повторно посещаю «страницу создания», чтобы создать еще один новый элемент, форма все еще заполняется из предыдущей отправки, поскольку страница фактически не обновляется.

Если это то, что мне нужно самому написать сценарий, это нормально, но мне любопытно, что нет никаких упоминаний о том, что, как я думал, было распространенным сценарием в документах jQuery-mobile. Такое ощущение, что я, должно быть, упускаю что-то очевидное. Как другие люди справляются с этим?

Ответы [ 2 ]

6 голосов
/ 02 июня 2011

Метод rel = external вызывает проблемы в других местах, например, Вы не можете развернуть полноэкранное приложение для iPad, которое использует rel = external.

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

Я вставил следующее сразу после моей ссылки <script src="../../Scripts/jquery.mobile-1.0a4.1.min.js" type="text/javascript"></script>:

script type="text/javascript">

    $('div').live('pagehide', function(event, ui){
      var page = jQuery(event.target);
        //alert('point 6875654');
      if(page.attr('data-cache') == 'never'){
        //alert('removing jqm history page');
        page.remove();
      };
    });

    </script>

Затем я добавил атрибут data-cache следующим образом:

<div class="page" data-role="page" data-cache="never">

Это, похоже, очень помогло, хотя у меня все еще есть некоторые проблемы, связанные с перенаправлениями, связанные с безопасностью ASP.NET.

2 голосов
/ 20 марта 2011

Мое решение для подобной проблемы состояло в том, чтобы добавить rel = external к страницам, которые обновляются динамически. Хотелось бы, чтобы был метод "перепрошивки" страницы при добавлении динамического контента

...