打開新窗口後,下面的腳本查詢返回的JSON響應PHP服務。爲每個返回的記錄創建按鈕,允許用戶從數據庫中刪除該記錄。下面還創建一個鏈接來刷新數據。jQuery腳本只能在IE
這一切都在IE,Chrome瀏覽器,Safari瀏覽器... IE瀏覽器工作正常(嘗試8 & 9),但是,有一個奇怪的問題。
頁面加載時,我能夠通過點擊「刷新」鏈接來刷新數據。在此之後,點擊沒有反應,除非我打開一個不同的IE窗口相同的頁面,點擊新窗口中的鏈接,並返回到原來的窗口。 「刷新」鏈接然後在新窗口上運行一次。然後它變成一個安全循環。
您的幫助表示感謝!
function getNew(){
$('#new').remove();
$.getJSON('service.php', function(data) {
var items = [];
items.push('<tr><th>EmplId</th><th>ExternalID</th><th>Name</th></tr>');
$.each(data, function(key, val) {
var indiv = val.toString().split(",");
items.push('<tr>');
var id = indiv[0];
$.each(indiv, function(index, value) {
items.push('<td align="center" id="' + index + '">' + value + '</td>');
});
items.push('<td class="updateButton" align="center" onclick=\'return update("'+id+'")\'>Update</td>');
});
items.push('<tr><td class="refreshButton" align="center" onclick=\'return getNew();\'>Refresh </td></tr>');
$('<table/>', {
'id': 'new',
html: items.join('')
}).appendTo('body');
});
}
function update (emplID){
$.ajax({
url: "service.php?emplID="+emplID,
context: document.body,
success: function(){
$('#new').remove();
getNew();
}
});
}
我試過使用.live,我得到了相同的結果。
$(".refreshButton").live("click" , function() {
getNew();
$.ajax({
url: "Service.php?emplID=",
context: document.body,
success: function(){
$('#new').remove();
getNew(); }
});
});
我已禁用緩存仍無濟於事。使鏈接工作的唯一辦法是在一個單獨的窗口中打開同一個頁面,點擊鏈接,並返回到原來的窗口。有沒有解決這個問題的方法?
$(".refreshButton").live("click" , function() {
getNewStudents();
$.ajax({
url: "studentService.php?emplID=",
cache: false,
context: document.body,
success: function(){
$('#newStudents').remove();
getNewStudents();
}
});
});
感謝您的建議。我固定TR,但似乎解決方案是使用
$.ajaxSetup({ cache: false });
看來IE的所有版本中把Ajax調用正常的網絡請求(緩存),而其他瀏覽器認爲Ajax調用爲不可緩存。
今天學到新的東西,謝謝你們!