jquery预加载通过load()方法加载的页面

时间:2009-10-14 19:41:55

标签: jquery ajax preload

我正在尝试像boxy或facebox或lightbox这样的东西......等等。唯一的问题是我不知道如何通过load()方法预加载加载到框中的页面。

它应该像这样工作:

  1. 弹出框
  2. 添加加载动画
  3. 加载页面时,动画消失
  4. 所以我需要知道何时加载页面以删除动画。

2 个答案:

答案 0 :(得分:3)

var function_for_display_animation = function(){
   //display animation
}
var function_for_remove_animation = function(){
   //remove animation
}

function_for_display_animation();
$(selector).load('page.php',function_for_remove_animation);

或:

$().ajaxSend(function(evt, request, settings){
    //start animation
});

$().ajaxComplete(function(event,request, settings){
    //end animation
 });

$(selector).load('page.php', function(){
    //work
});

答案 1 :(得分:1)

如果我理解正确,您说的是因为您网站上的网页需要一段时间才能加载,您希望立即显示友好的加载消息,并在网页加载后消失。

当首次加载页面时,诀窍就是下载不多。只是加载消息和一些JavaScript。

使这项工作的原因在于你的$(document).ready()函数,你将使用AJAX来获取慢速数据。一旦AJAX查询返回,使用JS用数据填充页面,然后关闭加载消息。