使用后退按钮时移动浏览器上的 jQuery 延迟加载

标签 jquery lazy-loading

我正在尝试使用jquery的lazyload插件在我的web应用程序上延迟加载内容,并且在第一次加载页面时它工作得很好。这是我使用的代码:

    $(".lazy").lazyload({         
        effect : "fadeIn",
        container: $("#wrapper")
    });

问题出在浏览器的向后导航上。当用户转到新页面,然后使用延迟加载功能点击后退按钮返回页面时,不在浏览器视口(viewport)内的任何图像将继续良好地延迟加载,但最后在视口(viewport)内的任何图像都不会延迟加载。在页面更改之前未完成加载和显示将不会加载。因此,之前加载的图像和下一个加载的图像之间只有空白空间,未完成的图像所在的位置。

任何人都可以想出解决此问题的方法,以便在导航返回时,未完成加载的图像继续加载或重新加载吗?

最佳答案

阅读了一些文档后,我能够使用以下命令使其在所有浏览器中运行:

function myLoadHandler(evt)
{
    if (evt.persisted) {

        $(".lazy").lazyload({         
            effect : "fadeIn",
            container: $("#wrapper")
        });

        return;
    }

        $(".lazy").lazyload({         
            effect : "fadeIn",
            container: $("#wrapper")
        });
}

function myUnloadHandler(evt)
{
    if (evt.persisted) {
        $.noop();

        return;
    }

    $.noop();
}

if ("onpagehide" in window) {
    window.addEventListener("pageshow", myLoadHandler, false);
    window.addEventListener("pagehide", myUnloadHandler, false);
} else {
    window.addEventListener("load", myLoadHandler, false);
    window.addEventListener("unload", myUnloadHandler, false);
}

关于使用后退按钮时移动浏览器上的 jQuery 延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11766158/

相关文章:

javascript - jQuery:将虚拟键盘的字母添加到输入框中的插入符号位置

jquery - 使用 jQuery 延迟加载插件和 tablesorter 插件与 addParser 方法?

c# - Entity Framework AsNoTracking() 无限导航属性

javascript - 延迟加载图像在 iPhone 浏览器中不起作用

javascript - XMLHttpRequest 无法加载文件 :

javascript - jQuery addClass 覆盖前一个元素

c# - 如何使用 knockout、jquery 和 ASP.NET MVC 创建可重用的控件?

javascript - 垂直动画图像 - jQuery

java - 使用 Universal Image Loader 加载联系人的 PHOTO_URI

javascript - 图像延迟加载会引发错误