我正在尝试创建一个ajax网站。直观的方式似乎是使用jquery .html()方法用新内容替换容器的内容。
但是考虑到用户可能再次访问A然后是B然后再访问A,则重新加载A的第二次操作似乎是不必要的。
另一种方法是在一个新的div中加载ajax内容并以某种方式隐藏原始内容。然而,对我来说这似乎很简单,我想知道是否有一个好的框架或插件来更好地处理这个问题。在这种情况下是否存在性能问题,因为dom元素不断增长?
答案 0 :(得分:1)
您可以缓存Ajax请求,因此每当您需要内容时,客户端javascript都不会请求服务器。例如。在jQuery中:
$.ajaxSetup({ cache: true });
缓存请求实际上是jQuery中的默认设置,因此它始终缓存响应。
答案 1 :(得分:0)
在我们使用jQuery时,Google Chrome似乎没有缓存ajax内容,但IE10确实默认使用。
为了避免动态内容的双重加载,我们对div id =“mydiv”使用这样的原始方法:
if($("#mydiv").get(0).loaded)
{
}
else
{
$("#mydiv").get(0).loaded = true;
//
// here we load ajax content for mydiv:
//
...
}
已加载是用户添加的mydiv持久DOM元素对象的JavaScript属性,而不是临时jQuery对象。