日期:2014-05-16  浏览次数:20369 次

有谁可以帮忙给些建议?我们的.net图片网站运行很慢
本帖最后由 yaoxiaosi 于 2014-02-26 17:24:46 编辑
有谁可以帮忙给些建议?我们的.net图片网站运行很慢,
http://www.tujiajia.cn
网站运营有一段时间了,最大的问题是太慢,因为图片太多,真心希望有相关经验的大侠知道一下
------解决方案--------------------
先把你们混乱的JS整理一下。以我看到页面源代码为例:
<script type="text/javascript" src="js1.02/Special/Js_Actions.js"></script>
<script type="text/javascript" src="js1.02/Common/ShowBox.js"></script> 
<script type="text/javascript" src="js1.02/Common/Verification.js"></script>
<script type="text/javascript" src="js1.02/Common/waltafall_Base.js" ></script>
<script type="text/javascript" src="js1.02/Common/DivHelper.js"></script>
<script type="text/javascript" src="js1.02/Common/UserHelper.js" ></script>
<script type="text/javascript" src="js1.02/Special/ShowTag.js" ></script> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript"src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-appid="100444785" data-redirecturi="http://www.tujiajia.cn/qc_callback.html" charset="utf-8"></script>
<script type="text/javascript" src="UploadFiles/jquery.uploadify.min.js"></script>  
<script type="text/javascript" src="UploadFiles/swfobject.js"></script>  
<script type="text/javascript" src="js1.02/Common/UploadLocal2.js"  ></script>
<script type="text/javascript" src="js1.02/Special/BaseMaster.js"></script>
 

这么多JS文件,你们用什么管理的?为什么有的都没有被压缩过?我不知道你们后台是什么,但是部署的时候你们至少应该把这些文件打包成一个压缩好的JS文件,避免客户端发起太多请求。具体做法请学习Grunt。

同时,你们有太多的inline styles,比如:
<div id='upload_index' style='float:left;position:absolute;top:50px;right:40px;border:1px solid #CCCCCC;display:none'>
  
这样的代码怎么好意思发布出去?把这些inline styles全部抽离出来,规范成CSS class然后写到相应CSS文件中,最后把若干需要的CSS文件用Grunt打包成一个,压缩,然后再部署。

你们有些JS代码完全可以放到后台静态JS文件中,却把它们写到页面中,以至于每次客户端请求的时候都回传同样的JS代码,这是要闹哪样?请规范你们的JS代码。

太多太多问题了,我懒得往下写了。

------解决方案--------------------
参考,构建高性能网站的前几篇基础说明。看到那些凌乱的js和内嵌的css我就火,js不要放头部哦。资源文件单独放一个资源服务器上,分段异步加载。有钱的话再整个cdn加速
------解决方案--------------------
1.IIS启用GZIP
2.js能合并的合并为一个文件,对js文件使用工具进行压缩,并将网页中的js引用放到网页最底部。
3.IIS中设置js的缓存过期时间,可以设置为1天或者更长,那么用户浏览一次后,1天之内不会再请求第二次该js文件
------解决方案--------------------
我可以负责任地说,就这个问题而言,纠结什么“图片、js下载速度”都是脱离实际的。

解决问题要基于测试,而不是道听途说。你只要用一个http调试器看看你的页面上的几十个请求——每一个的延迟时间——就知道了,你的图片和js文件都仅仅是毫秒级就加载完毕了,因为它们根本就是304(直接使用客户端缓存)的。而你的主页面html内容,当卡了20秒钟之后,你才突然看到了下载内容、此时浏览器即时渲染了页面。

自己动手通过测试来分析页面加载的瓶颈,千万不要仅凭道听途说。