如何在完成所有Javascript执行之前强制IE显示页面内容?

如何在完成所有Javascript执行之前强制IE显示页面内容?,javascript,jquery,performance,pageload,page-load-time,Javascript,Jquery,Performance,Pageload,Page Load Time,在RubyonRails开发环境中,Firefox上的页面将在30秒后显示,但在IE8和IE7兼容模式下需要90秒 进一步的调查显示,应该是Javascript减慢了页面的速度,因为如果关闭Javascript,页面内容也会在30秒内显示出来 因为可能有7或8个jQuery插件、Facebook脚本和Google Analytics脚本,所以将所有Javascript代码移到HTML文件的末尾需要相当长的时间,这将加速页面内容视图,使内容在30秒后显示,就像Firefox一样,有没有办法强迫IE

在RubyonRails开发环境中,Firefox上的页面将在30秒后显示,但在IE8和IE7兼容模式下需要90秒

进一步的调查显示,应该是Javascript减慢了页面的速度,因为如果关闭Javascript,页面内容也会在30秒内显示出来

因为可能有7或8个jQuery插件、Facebook脚本和Google Analytics脚本,所以将所有Javascript代码移到HTML文件的末尾需要相当长的时间,这将加速页面内容视图,使内容在30秒后显示,就像Firefox一样,有没有办法强迫IE在完成所有Javascript代码之前显示页面内容

我认为IE可能在等待所有Javascript代码首先完成,因为如果有document.write语句,它应该在HTML中。。。Firefox或Chrome并不等待,而是立即显示内容

在生产服务器上,页面将在5到7秒后显示在Firefox上,因为很多部分HTML子组件都被缓存。IE 8也需要更长的时间,大约40秒左右


另外,Javascript被嵌入整个HTML的一个重要原因可能是,假设有一个图像旋转木马,那么HTML代码在一个部分中,这是一个由HAML文件生成的HTML文件,所有HTML以及Javascript代码都在这个文件中,以便更好地封装,而不是将HTML放在一个文件中,还有另一个文件中的Javascript,但我想知道如果所有这些Javascript代码块只使用jQuery的$document.readyfunction{…},那么这些代码块是否会降低IE上的页面显示速度?

不幸的是,可以安全地假设您的jQuery插件都在等待dom在IE中完全加载。一种解决方案是尝试加快页面加载速度。以下是一些很好的方法:

不要自己托管jQuery。从Google或Microsoft CDN加载它。这将减少一个连接到web服务器的连接。 通过jQuery动态加载内容。事后很难重新布线,但它肯定会让你逐步加载内容,并给人一种页面加载速度更快的印象。 如果可能,将所有javascript放在页面底部。 尽可能消除对jQuery中document.ready的调用。 使用jQuery插件延迟加载图像:这将减少页面初始显示期间的内容下载。 将第三方CDN用于托管脚本和图像,或至少在另一个域中使用。加载同一个域是一个瓶颈
我还想建议日产范在第3点所说的话,但有一个修正案。将所有不必要的脚本移到页面底部,只留下jquery和一个或多个脚本

我建议的另一件事是考虑使用LAB.js,它强制浏览器并行处理js和其他页面项目,因此允许您减少相当多的加载过程时间