标题几乎说明了。我有一个没有背景图像的元素。我在Ajax请求期间使用jQuery的css()方法设置一个(微调器),然后用removeAttr(“style”)清除它以恢复。一次只运行一个请求。
然而,这会导致背景图像的GET不仅仅是第一次,但后来也是如此,但即便如此,也并非总是如此。我可以发送,比方说5个请求,并且在第一个之后没有GET用于spinner.gif,然后是另一个请求,然后会有一个请求,然后不再用于另外3个请求,然后GET用于接下来的2个。如果对每个Ajax请求的图像都有GET,我会理解,但它是随机的。
我在这里缺少什么?
答案 0 :(得分:1)
无法确定,但您可能会考虑稍微改变一下: 选项a:有两个不同的css类,一个带有微调器,一个没有,而不是使用背景样式参数,只需切换类。 选项b:让旋转器始终存在,但是在ajax调用期间创建容器.hide(),然后创建.show(),在结束时调用.hide()。
答案 1 :(得分:1)
首先,确保您的服务器没有停止浏览器缓存图像。
其次,正如Ken所说,通常更好地打开和关闭一个类,然后在jQuery中使用addClass
和removeClass
函数。使用removeAttr('style')
对我来说似乎有些苛刻,并且可以删除您不想删除的其他样式。
如果上述方法无法解决您的问题,您可以随时尝试预加载图片:
var spinner = new Image;
spinner.src = "/path/to/image.gif";
// when you need to set the image...
$('#image').css('background-image', spinner.src);
// when you need to remove the image...
$('#image').css('background-image', '');