4

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

如果我没有找到解决方案,我想我必须走反向代理路线,并找到一种方法在页面内容更改时使代理缓存无效。

4

4 回答 4

2

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

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

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

同样在Flush the Buffer Early
http://developer.yahoo.com/performance/rules.html的 Yahoo 提示页面上

静态缓存

此外,您可以在 css 和 javascript 等静态内容上添加客户端缓存。在这个页面上有所有 iis 版本的所有方法。

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

跟进

在我看到你的页面后,我建议你做的另一种想法是将所有 css 和 javascript 分别放在一个文件中。并且还使用 minified 来最小化它们。

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

于 2012-02-13T16:39:26.983 回答
1

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

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

如果您还没有启用 GZIP,还可以考虑在您的服务器上启用 GZIP。这会即时压缩文件,从而减少传输量。

于 2012-02-13T16:38:45.597 回答
0

您可以使用 jQuery 在加载后立即执行您的 js。

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

或者你可以只使用独立的准备函数-> $(document).ready 等价于没有 jQuery

于 2012-02-13T16:38:36.843 回答
0

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

于 2012-02-13T16:39:35.680 回答