我想知道是否有人找到了一种方法在渲染头标记时发送,所以在页面渲染完成之前加载CSS和Javascript?我们的页面需要渲染大约523毫秒,并且在收到页面之前不会加载资源。我已经完成了很多PHP,可以在脚本结束之前刷新缓冲区。我尝试在主页Response.flush()
的末尾添加page_load
,但之后页面布局严重受损。我见过很多人使用更新面板后来使用AJAX发送内容,但我不太清楚会对SEO产生什么影响。
如果我找不到解决方案,我想我必须采用反向代理路由,并在页面内容发生变化时找到使代理缓存无效的方法。
答案 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;