在 Ruby on Rails 开发环境中,在 Firefox 上 30 秒后会显示一个页面,但在 IE 8(使用 IE 7 兼容模式)上需要 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 秒左右。 )
PS Javascript 嵌入整个 HTML 的一个重要原因可能是,如果有一个“图像轮播”,那么 HTML 代码是在一个“部分”中,这是一个由 HAML 文件生成的 HTML 文件,所有HTML 和 Javascript 代码都在这个文件中,为了更好的封装,而不是将 HTML 放在一个文件中,而将 Javascript 放在另一个文件中,但我想知道如果所有这些 Javascript 代码块都只使用 jQuery 的$(document).ready(function() { ... })
,那么这些代码会怎样阻止减慢IE上的页面显示?