我正在嘗試創建一個ajax網站。直觀的方式似乎是使用jquery .html()方法用新內容替換容器的內容。Ajax:替換容器的內容與其他div中的加載?
然而,考慮到用戶可能先訪問A然後再訪問B,然後再次訪問A,重裝A的第二次操作似乎沒有必要。
另一種方式發生在我身上的是加載ajax內容在一個新的div和以某種方式隱藏原始內容。然而,它似乎對我來說是非常手動的,我不知道是否有一個好的框架或插件來更好地處理這個問題。在這種情況下會有性能問題,因爲DOM元素不斷增長?
我正在嘗試創建一個ajax網站。直觀的方式似乎是使用jquery .html()方法用新內容替換容器的內容。Ajax:替換容器的內容與其他div中的加載?
然而,考慮到用戶可能先訪問A然後再訪問B,然後再次訪問A,重裝A的第二次操作似乎沒有必要。
另一種方式發生在我身上的是加載ajax內容在一個新的div和以某種方式隱藏原始內容。然而,它似乎對我來說是非常手動的,我不知道是否有一個好的框架或插件來更好地處理這個問題。在這種情況下會有性能問題,因爲DOM元素不斷增長?
您可以緩存Ajax請求,因此客戶端JavaScript在每次需要內容時都不會請求服務器。例如。在jQuery中:
$.ajaxSetup({ cache: true });
緩存請求實際上是jQuery中的默認設置,所以它一直緩存響應。
在我們使用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對象。
谷歌瀏覽器似乎不緩存ajax內容,但默認情況下IE10。 – jacouh