[英]preloading a partial view in rails with javascript
鼠标单击按钮时,我在div中切换了一个图像,在Rails中切换了另一个部分。 问题是该部分中的图像加载速度很慢...我想在其中预加载图像。 有没有办法做到这一点? 我可以以某种方式预加载部分内容吗?
-@other_images.each do |img|
.thumbnail_wrapper
.thumbnail_image
=image_tag img.image.url(:thumbnail), :class => 'button' , :onClick => "replaceImg(#{img.id});"
function replaceImg(id){
var url = '/images/refresh/' + id;
new Ajax.Updater('content_image', url);
}
非常感谢!
我想你的局部渲染在视图内。 预加载欺骗了浏览器,以确保它需要资源,并且现在需要它。
使用Javascript
您可以强制图像在Javascript中实际显示之前进行预加载:
<script language="javascript">
function img_preloader() {
myimg = new Image();
images = new Array();
images[0]="image1.jpg";
images[1]="image2.jpg";
images[2]="image3.jpg";
images[3]="image4.jpg";
// start preloading
for(i=0; i<=3; i++) {
myimg.src=images[i];
}
}
</script>
这样的内每次迭代for
图片的一环被加载。
要以编程方式生成数组,您可以(在erb中):
<script language="javascript">
function img_preloader() {
myimg = new Image();
images = new Array();
<% @array_of_img_paths.each do |path| %>
images.push("<%= path %>");
<% end %>
// start preloading
for(i=0; i<images.length; i++) {
myimg.src=images[i];
}
}
</script>
只是HTML
现在,根据浏览器和服务器设置并行并行(预)加载图像。
CSS
将您要预加载的图像设置为没人能看到的div背景图像:
div.noone_will_see {
background-image: url("image1.jpg");
background-repeat: no-repeat;
background-position: -1000px -1000px;
}
迭代要预加载的每个图像。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.