2011-11-05 66 views
0

我正在使用jQuery Mobile和AJAX構建一個web應用程序,以便在PHP的幫助下從服務器中提取SQL。AJAX請求結果每次都訪問結果頁

回調沒問題,因爲它顯示我想要的正確值。問題在於每次訪問頁面時,相同的數據將被添加到列表中,從而創建重複項。

這是AJAX查詢:

function getNews() { 
    $.ajax({ 
    url: 'http:mylivesite/news_ajax.php?', 
    dataType: 'jsonp', 
    jsonp: 'jsoncallback', 
    timeout: 5000, 
    success: function(data, status) { 
     $.each(data, function(i, item){ 
     var newNews = '<li>'+ 
     '<p>'+item.title+'</p>'+ 
     '<p>'+item.content+'</p>'+ 
     '</li>'; 
     $('#currentNews').append(newNews); 
     }); 
    }, 
    error: function() { 
     output.text('There was an error loading the data.'); 
    } 
    }); 
} 

我加入cache: false,但相同的結果。我錯過了什麼?

+0

這個測試用例甚至沒有語法上的有效性。展示你真實的一面。 –

回答

2

那麼,當你的東西append東西。東西得到appended

Empty目標元件首先如果是這樣的語義,你需要:

success: function(data, status) { 
     $('#currentNews').empty(); // <----------------- 
     $.each(data, function(i, item) { 
      var newNews = '<li>'+ 
           '<p>'+item.title+'</p>'+ 
           '<p>'+item.content+'</p>'+ 
           '</li>'; 
      $('#currentNews').append(newNews); 
     }); 
} 
+0

ahh yay !!!我在想什麼......這真的有助於@Tomalak ..非常感謝。 –

+0

@Saint:沒問題。 –

2

使用$('#currentNews').empty();發出請求之前。

2

有兩個領域需要研究。

  1. 當您收到消息時,請立即清除當前消息條目,並在$('#currentNews').empty()上成功回撥。
  2. 確保您在事故中不會調用ajax調用兩次。是否有任何回調或代碼片斷使這個Ajax調用發生兩次?
+0

聽起來像他的應用程序_designed_多次調用AJAX請求,這很好。考慮一個定時的「刷新」功能,保持用戶界面的狀態與服務器的模糊同步。 –