请选择 进入手机版 | 继续访问电脑版

设为首页 收藏本站
思科社区 关注
思科社区

   思科 CCO 登录 推荐
 找回密码
 立即注册

搜索
热搜: 邮件服务器
查看: 478|回复: 1

【原创】【小目标,一个“译”】+ ASP.NET性能优化的15个技巧(2)

[复制链接]
发表于 2019-1-2 17:22:43 | 显示全部楼层 |阅读模式
9.缩小图片
在理想状态下,你的网站根本不会包含任何图片。通常情况,矢量图片会比各种真彩图片要小许多,因此如果使用inline-SVG和CSS的技巧来为你的网页创建矢量图的话,效率会非常高。然而事实上却不能完全是这样,因此,你必需进行一些缩小图片的工作。虽然要搞清楚各种正确的编码设置着实不容易,但是我们可以借助像tinypng之类的服务(请参见https://tinypng.com/)来达到目标。另外,它的logo是一只非常可爱的熊猫。
当然,也有一些JavaScript构建工具的其他插件,可以达到类似的优化效果,请参见:https://www.npmjs.com/package/gulp-image-optimization
10.检查你的查询
各种对象关系映射(object-relational mappers,ORM)已经对开发人员的生产力起到了提升作用,但它们只是提供了优化查询的一个抽象层。当你可能会有N+1个选择错误、或是从服务器获取了太多的数据时,只有通过Prefix才能够突显具体的次数。你会惊奇地发现通过使用预先加载、而非延迟加载,以及检查各种预测值,问题就会变得非常容易解决。当然,微软对于优化实体框架(Entity Framework,EF)的各种SQL调用,也有一些独到的建议,请参见:https://msdn.microsoft.com/en-us/library/hh949853(v=vs.113).aspx。
11.缓存你的页面
通常情况下,你网页上的数据会随着时间的推移而缓慢发生变化。比如说:在Stack Overflow(译者注:是一个技术问答网站。用户可以在该网站上免费创建主页、提交问题、浏览问题、索引相关内容。)上的那些热点问题的页面会实时地被更新,但是其数据的变化并不够显著,不至于触发对数据库的重新查询。因此我们没有需要去调整数据库、并对复杂的页面进行重新渲染,而是可以将该网页推送到缓存队列中,并使用这些数据来响应后续的请求。
如果你碰巧使用着ASP.NET的MVC缓存,那么一个action的响应就应该只是简单地添加单一的属性到action中。
[HandleError]publicclassHomeController: Controller {
    [OutputCache(Duration=10,VaryByParam="none"
    publicActionResult Index() {
        returnView();
    }
}

如果你所缓存的页面全部内容并非是你都需要的,那么请继续往下看第12个技巧。
12.仅缓存页面的部分内容
你可能只想缓存页面的一部分内容; 这被俗称为甜甜圈孔洞缓存(donut holecaching)。当你在同一页上的既有用户特有的数据、又有一般的数据时,这会是一种非常有用的方法。用户特有数据随着用户的不同而改变,而页面上的其余部分则对于所有用户都是相同的。在MVC 5的应用中,这是通过做局部视图(请参见:https://visualstudiomagazine.com ... t-hole-caching.aspx)来实现的,并且在MVC的核心,我们会用到缓存标签帮手(请参见:https://www.davepaquette.com/arc ... che-tag-helper.aspx)。
13.内容分发网络(CDN)
全球各处都有非常多的内容交付网络,它们可以通过离你最近的节点,将内容高速地传递到你的面前。
14.缩小你的库
如果你正在使用像jQuery之类的库,那么你可以考虑是否真的会用到它的所有功能,也许你可以去使用一个更小、更有针对性的库。比如说:Zeptojs就是一个能够支持jQuery的很多功能、而又更小的库。其他像jQuery UI的库,也能为构建个性化的包提供删减过的功能。如果你正在使用Augular的话,那么你在对产品进行编译的时候,就可以像“摇动树干”一样,将那些在你的项目中完全用不到的库去除掉。可见这种方式在保留同等功能的情况下,能有效减少传输中的数据载荷。
15.避免客户端重定向
最后的技巧是避免通过使用客户端的重定向。重定向势必添加了额外的服务器跳转的开销。而在诸如蜂窝网络这样高延迟的网络中则是完全不可取的。相反地,如果使用服务器端的重定向,则不会增加跳转的开销。不过,此法对于将用户重定向到SSL版本的页面上却不太有效果。针对这种情况,HTTP严格传输安全(HTTP Strict Transport Security,HSTS,请参见:https://www.troyhunt.com/understanding-http-strict-transport/)和预加载正好能够提供帮助。只要你将网站加入预加载列表中,就会被自动重定向到相应的SSL版网页上。
我们希望上述这些技巧能够有助于提高你的网站性能,以及用户的满意度。如果你觉得我们疏漏了任何技巧的话,请留言为我们添砖加瓦。当然,你也可以扩展性地阅读一下Matt Watson的《有关服务器和客户端性能的三大Web优化技巧》(https://stackify.com/web-performance-optimization/
【原标题】 15 Simple ASP.NET Performance Tuning Tips
作者:  Simon Timms        


相关阅读
【原创】【小目标,一个“译”】+ ASP.NET性能优化的15个技巧(1)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分0 (0 评价)
发表于 2019-1-3 16:12:49 | 显示全部楼层
感谢版主分享~~
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分0 (0 评价)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver | 思科社区  

GMT+8, 2019-5-25 05:46 , Processed in 0.127745 second(s), 30 queries .

京ICP备09041801号-187

版权所有 :copyright:1992-2019 思科系统  重要声明 | 保密声明 | 隐私权政策 | 商标 |

快速回复 返回顶部 返回列表