我在一个大型网站工作。我们的营销部门要求我们为网页添加更多网络广告跟踪像素。我跟踪广告系列的效果没有问题,但服务这些像素的服务器可能不可靠。我相信大多数人都看过拒绝完成加载的网页,因为yieldmanager.com的像素无法完成下载。
如果像素从未完成下载,onLoad永远不会触发,在我们的情况下,如果没有这个,页面将无法运行。
我们还有戈麦斯的额外问题。正如您可能知道的那样,他们在世界各地都有测量现场速度的机器人,尽管他们的方法存在缺陷,但我们的测量结果仍然很重要。他们的机器人执行onLoad处理程序。因此,即使我使用运行onLoad的脚本在其他所有内容完成后将像素添加到页面中,如果像素需要80秒加载,我们仍然可以得到糟糕的Gomez分数。
我的解决方案是通过onMouseMove处理程序将像素添加到页面中,因此只有人类会触发它们。你们有什么更好的想法吗?
答案 0 :(得分:6)
jQuery和其他JavaScript框架可以通过使用诸如“文档就绪”功能之类的方法来帮助解决问题,该功能在文档准备就绪时触发,而不需要等待所有图像。
我将直接引用jQuery教程:
大多数Javascript程序员最终做的第一件事就是在程序中添加一些代码,类似于: window.onload = function(){alert(“welcome”); } 其中包含您希望在加载页面时运行的代码。但问题是,在完成所有图像下载(包括横幅广告)之前,Javascript代码不会运行。首先使用window.onload的原因是由于当您第一次尝试运行代码时HTML'文档'尚未完成加载。 为了避免这两个问题,jQuery有一个简单的语句来检查文档并等待它准备好被操作,称为就绪事件:
$(document).ready(function(){
// Your code here
});
您可以使用此事件加载有问题的图像。
有关详细信息,请参阅此链接。
答案 1 :(得分:1)
我也在一个大型网站工作,这就是我们所做的:
将广告调用移至底部 页面,所以内容会显示 首先(因为JS是 同步)。
使用Ajax Calls加载广告(到 允许页面可用 广告正在加载)隐藏 元件。
位置移至正确位置 放在DOM中并“取消隐藏。”