2012-04-22 3 views
0

У меня есть проблемы, чтобы понять, как веб-страницы обновляются с помощью JQuery ...JQuery - нужно нажать клавишу F5 (обновить), чтобы увидеть содержание

Я начинаю с этой тестовой страницы: http://www.sogival.com/m-index.php Оттуда я генерировать список областей из базы данных sql, каждый объект списка, указывающий на веб-страницу, со следующим URL: http://www.sogival.com/m-area.php?page_id=1 (или любым другим номером 1..7). Но когда я нажимаю на любую из этих ссылок, я получаю почти пустую страницу, хотя URL-адрес верен, так как части, поступающие из sql, не заполняются. Но для меня странно, что если я нажму клавишу F5, страница будет отображаться правильно! И для меня это реальная загадка ... Почему первая страница не отображается должным образом в первый раз?

У меня также есть второй вопрос: Я хотел бы использовать следующий скрипт для заполнения 2 различных областей на странице jquery, а именно h3 и h4. Однако, что я делаю, только первый термин (здесь h3) заселен, а второй остается пустым! Не могли бы вы объяснить мне, как заполнить оба? Обратите внимание, что в этом примере data.items.length = 1, поэтому цикл for передается только один раз.

<script type="text/javascript"> 
     $(function(){ 
     var list = ''; 
     $.getJSON("http://www.sogival.com/m-fetch.php", // fichier 
      {"page": "dest", "page_id": 35, "lang" : "fr"}, // paramètres 
      function(data){ // fonction 

      for (var i = 0; i < data.items.length; i++) { 
        $("h3").append(data.items[i].name).listview("refresh"); 
        $("h4").append(data.items[i].general).trigger("refresh"); 
      } 
     }); 
    }); 

    </script> 

ответ

0

Это, скорее всего, связано с кешированием. Попробуйте добавить метку времени, чтобы избежать этого:

function myTimestamp(){ 
tstmp = new Date();  
return tstmp.getTime(); 
} 

, а затем в вашем коде:

$.getJSON("http://www.sogival.com/m-fetch.php?" + myTimestamp(), 
// continue 
+1

Только что узнал, что есть подобный вопрос + ответ, как это здесь: http://stackoverflow.com/ вопросы/367786/предотвратить кэширование-на-АЯКС-вызова – Amir

+0

кажется не работает для меня ... Я изменил код для добавления: вар d = новый Дата() вар п = d.getTime() , а затем передать это значение n в те страницы php, которые используются для выбора данных f из базы данных sql и самой ссылки, но опять же, только после обновления F5 я вижу, что страница заполнена. Итак, у меня есть $ .getJSON ("http://www.sogival.com/m-fetch.php", {"page": "area", "page_id": , "lang": "", "n": n}, И действительно, ссылка http://www.sogival.com/m-dest.php? page_id = 35 & n = 1335114814018 работает только после обновления ... – sanji

+0

В этом случае попробуйте встроенное решение jQuery: '$ (document) .ready (function() { $ .ajaxSetup ({cache: false}); }); ' Он должен работать (для $ .ajax, $ .getJSON и т. Д.) – Amir

Смежные вопросы