我正在构建一个应用程序,它是一个图片库,但是有很多图像(用于浏览文档档案);基本上,应用程序这样做:
的“先前”和“下一步”链接。
前面和下一个链接是从一个XML文件中检索的,该文件按顺序列出了所有图像;每组中大约有1000-2000个图像(每组一个XML文件)。为了避免查找前面和后面的同级元素,我将每个先前和下一个图像的名称作为每个图像的属性。
因此,XML文件基本上是:
<list>
...
<image previous="ww.jpg" next="yy.jpg">xx.jpg</image>
<image previous="xx.jpg" next="zz.jpg">yy.jpg</image>
<image previous="yy.jpg" next="aa.jpg">zz.jpg</image>
...
</list>我要做的是:
function display(img) {
var lookingfor = 'image:contains('+img+')';
$.ajax({
type: "GET",
url: "pns.xml",
dataType: "xml",
success: function(xml) {
$(xml).find(lookingfor).each(function(){
// display the actual image and the links from @previous and @next attributes
});
}
});
}
$(document).ready(function(){
var image = $.query.get('img');
display(image);
});第一次加载页面时,脚本:
file
到目前一切尚好。我的问题是其他的图像。
指向上一个或下一个图像的链接是:
display('image_id');我希望,如果不重新加载页面,只需再次调用“display”函数,我就不必再次获得XML文件,也不必再解析它。但是,情况似乎并非如此: XML文件显然再次加载了“display”函数的每一个新调用。
第一次加载页面时出现明显的延迟是可以接受的;但是对于每个图像来说,相同的延迟似乎是缓慢的,而且非常令人不快。
我完全控制应用程序;如果有一个比XML文件更有效的解决方案来保存参数,那就很好了。但是,应用程序必须脱机工作,因此我无法查询服务器以获取前面/下面的图像的名称。
此外,使用: would ()选择器可能不是最快的方法:有什么更好?
编辑:使用XML并将其加载到外部显然不是最佳方法;一个更好、更简单的方法是让一个大对象包含每个图像的一个数组,并且只加载这个对象一次(当脚本第一次加载时)。另一种方法是使用一些本地存储/ SQL工具;我可以在提供此类工具的Google中进行尝试。
发布于 2009-12-08 01:45:18
将cache设置为true如何?
$.ajaxSetup({
cache: true
});https://stackoverflow.com/questions/1863948
复制相似问题