关于javascript:在body之前发送头来加载CSS和JS asap

Send head before body to load CSS and JS asap

我想知道是否有人找到了一种方法在渲染头部标记的过程中发送,以便在页面渲染完成之前加载css和javascript?我们的页面需要大约523毫秒的时间来呈现,直到收到页面后才加载资源。我已经做了很多PHP,可以在脚本结束之前刷新缓冲区。我试过在母版页page_load的末尾添加一个Response.flush(),但之后页面布局被严重破坏。我见过很多人在之后使用更新面板使用Ajax发送内容,但我不太清楚它会对SEO产生什么影响。

如果我找不到解决方案,我想我必须走反向代理路由,在页面内容发生变化时找到一种使代理缓存失效的方法。


不要在代码后放置flush,而是将其放在HTML页面上,如下所示:

1
2
3
</head>
<%Response.Flush();%>
<body >

这可能会在页面上产生类似逃跑效应的效果,因此您可以尝试将刷新移到页面更低一点。

也可以在雅虎提示页面上提前刷新缓冲区http://developer.yahoo.com/performance/rules.html

静态缓存

此外,还可以在静态内容(如CSS和JavaScript)上添加客户端缓存。在此页面中,所有IIS版本都可以使用所有方法。

http://www.iis.net/configrereference/system.webserver/staticcontent/clientcache

跟进

我建议你在看到你的页面后再做一件事,就是把所有的css和javascript放在一个文件中。也可以使用最小化来最小化它们。

我使用这个小型化的http://www.asp.net/ajaxlibrary/download.ashx,结果非常好,实时小型化。


考虑使用内容交付网络(cdn)承载图像、CSS和JS文件。浏览器对每个域都有8或4个连接限制,因此一旦使用了这些限制,浏览器就必须等待释放资源。

通过在cdn上托管一些文件,您可以同时使用另一组连接,从而可以更快地加载所有内容。

如果还没有在服务器上启用gzip,也可以考虑在服务器上启用gzip。这会动态压缩文件,从而产生较小的传输。


加载文档后,可以执行淡入或显示。只需设置身体显示:无;


您可以使用jquery在加载JS后立即执行它。

1
2
3
$.fn.ready(function(){
    //Your code here
})

或者您可以只使用独立的ready函数->$(document.ready),不使用jquery就相当于