2010-09-17 90 views
1

我設法得到這個腳本。讓人耳目一新的對話框窗口的DIV:刷新jQuery UI對話框的內容

function getRandom() { 
$("#category_dialog").load("<?php echo $category; ?>", '', callback); 

}

function callback() { 
    $("#category_dialog").show("fast"); 
    setTimeout("getRandom();", 10000); 
} 

$(document).ready(getRandom); 

一切工作正常。 div每10秒刷新一次。但我對這種方法有些懷疑。 1.既然在任何10秒鐘內刷新都會減慢borwser的速度或者類似的東西? 2.我想讓它每3秒刷新一次速度會更快嗎?

我寧願讓某個鏈接刷新onclick的內容 - 但我找不到任何好的示例。有人能幫我解決這個問題嗎? 所以我想用load。()加載category_dialog div,但用onclick調用 - 然後顯示最新的新功能。 謝謝!


隨着Kissaki幫助我設法讓一個簡單的功能,這將使我的刷新鏈接:) 這裏的樣本:

$(function() { 
    $("#refresh").click(function() { 
    $("#category_dialog").load("<?php echo $category; ?>") 
    }) 
}) 

回答

0

如果你想降低刷新間隔,你只需要考慮性能:帶寬,服務器負載和客戶端負載。

客戶端負載不應該是一個問題,如果它不是在後臺無用的刷新。例如,如果窗口的焦點是減少無用的,從未見過的數據,則可以僅刷新。

由於div只顯示一次,每次刷新時都會調用show函數(雖然它仍然顯示,因爲它永遠不會隱藏),您可以刪除該調用。我不太清楚jQuery是如何實現它的,以及你可以在這裏獲得多少性能增益,但是在第一次調用之後,這是一個無用的調用。

您可能也可能在回調函數中使用它,因爲您使用的是加載函數。你必須檢查。

另外,您不需要將空字符串傳遞給加載函數。該數據參數是可選的。

而且由於我看不到內容更新,您可能在粘貼之前將其從代碼中刪除了?

有關的onclick jQuery提供的點擊()函數http://api.jquery.com/click/

$("#category_dialog").click(function(event){ 
    //refresh code here 
}); 
+0

我覺得我失去了一些東西。我點了$(「#category_dialog」)中的刷新代碼。click(function(event){ // refresh code here }); ,但它不刷新,如果我點擊 - 我也改變了ID到refresh_content,並將其用作鏈接,所以如果我點擊它,一切都會刷新,但仍然無法正常工作.. – ciprian 2010-09-17 21:43:38

+0

一直在尋找這裏http://api.jquery。 com/click /和我設法刷新鏈接。我將用解決方案編輯我的問題。謝謝你的時間 - 我真的很感謝你的好回答! – ciprian 2010-09-17 21:53:01