2013-10-06 127 views
0

我正在嘗試創建一個ajax網站。直觀的方式似乎是使用jquery .html()方法用新內容替換容器的內容。Ajax:替換容器的內容與其他div中的加載?

然而,考慮到用戶可能先訪問A然後再訪問B,然後再次訪問A,重裝A的第二次操作似乎沒有必要。

另一種方式發生在我身上的是加載ajax內容在一個新的div和以某種方式隱藏原始內容。然而,它似乎對我來說是非常手動的,我不知道是否有一個好的框架或插件來更好地處理這個問題。在這種情況下會有性能問題,因爲DOM元素不斷增長?

回答

1

您可以緩存Ajax請求,因此客戶端JavaScript在每次需要內容時都不會請求服務器。例如。在jQuery中:

$.ajaxSetup({ cache: true }); 

緩存請求實際上是jQuery中的默認設置,所以它一直緩存響應。

+0

谷歌瀏覽器似乎不緩存ajax內容,但默認情況下IE10。 – jacouh

0

在我們使用jQuery時,谷歌瀏覽器似乎不會緩存ajax的內容,但IE10的確默認。

爲了避免在一般動態內容的雙加載,我們使用原始方法這樣對於一個div ID =「mydiv」:

if($("#mydiv").get(0).loaded) 
{ 
} 
else 
{ 
    $("#mydiv").get(0).loaded = true; 
    // 
    // here we load ajax content for mydiv: 
    // 
    ... 
} 

加載是用戶加入的JavaScript屬性mydiv的持久DOM元素對象,而不是臨時jQuery對象。