在body之前发送头来加载CSS和JS asap

时间:2012-02-13 16:34:40

标签: javascript asp.net css optimization prerender

我想知道是否有人找到了一种方法在渲染头标记时发送,所以在页面渲染完成之前加载CSS和Javascript?我们的页面需要渲染大约523毫秒,并且在收到页面之前不会加载资源。我已经完成了很多PHP,可以在脚本结束之前刷新缓冲区。我尝试在主页Response.flush()的末尾添加page_load,但之后页面布局严重受损。我见过很多人使用更新面板后来使用AJAX发送内容,但我不太清楚会对SEO产生什么影响。

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

4 个答案:

答案 0 :(得分:2)

不要将Flush放在代码后面,而是放在html页面上:

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

这可以在页面上产生类似于fleekering的效果,因此您可以尝试将刷新移动到页面更低的位置。

同样在雅虎提示页面上提前冲洗缓冲区
http://developer.yahoo.com/performance/rules.html

静态缓存

此外,您可以在静态内容(如css和javascript)上添加客户端缓存。在此页面中包含所有iis版本的所有方法。

http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache

跟进

我还建议您在看到您的网页将所有css和javascript分别放在一个文件中之后再建议。并且还使用缩小来最小化它们。

我使用这个缩小的http://www.asp.net/ajaxlibrary/Download.ashx非常好的结果和实时缩小。

答案 1 :(得分:1)

考虑使用内容交付网络(CDN)来托管您的图像,CSS和JS文件。浏览器每个域有八个或四个连接限制 - 所以一旦你使用它们,浏览器就必须等待资源被释放。

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

如果您还没有考虑在服务器上启用GZIP,请考虑。这会动态压缩文件,从而减少传输。

答案 2 :(得分:0)

你可以使用jQuery在加载js后立即执行它。

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

或者您可以采用独立的就绪功能 - &gt; $(document).ready equivalent without jQuery

答案 3 :(得分:0)

您可以在加载文档后进行淡入或显示。只需设置body display:none;