长沙网站制作之网站性能优化_第1页
长沙网站制作之网站性能优化_第2页
长沙网站制作之网站性能优化_第3页
长沙网站制作之网站性能优化_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网站性能优化 来源 前端 1 减少 http 请求 每一次请求都需要服务器进行处理响应 这都需要耗用服务器资源和时 间 我们在设计网站是应该尽量减少 http 请求 1 有时候为了清晰我们会将 css 和 javascript 脚本分开书写 但如此就会增加我们请 求的次数 所以在保持条理清晰的前提下 我们应该尽量将 javascript 脚本和 css 分别整合 到同一个文件中 这样我们就避免了上述的问题 2 同样的 对于频繁出现的图标等内容 我们也应该加以整合 以 CSS 的 position 和 width 以及 height 设置后进行展示 这样也可以减少请求的次数 而有时候这样做也可 以减小图片的大小 因为图片合并后 它们之前的一些附加信息 比如安全信息 版本信 息等内容都进行了清理 2 压缩组件 IIS 启动 GZIP 压缩功能 可以减小传输流量 3 将样式表放在页面顶部 页面加载样式表时会对页面元素进行重绘 这必然会影响页面 的加载 所以我们应该尽量将样式表放在页面的顶部 4 尽量将 javascript 放在页面的底部 javascript 的加载会阻塞其后面内容的加载 所以 如果条件允许 我们应该尽量将 javascript 脚本后置 5 使用外部的 CSS 和 javascript 因为浏览器会对我们使用过的内容进行缓存 所以一些重 复使用的 CSS 和 javascript 会直接从缓存中进行读取 所以对于能够重用的 CSS 和 javascript 我们应当放入外部的 CSS 和 javascript 中 6 精简 javascript 和 CSS 从 JQuery 的 min 版本我们就可以看到 它对一些空格和字段进 行了删减 在保持其功能的前提下 消减了文件的大小 给加载带来了一定的便利 同样 的 如果我们要实现高性能的网页时 也应该注意这些 尽量减小 javascript 和 CSS 的内容 7 避免重定向 在重定向的过程中 会加长用户等待的时间 8 使 Ajax 可缓存 这主要体现在用户体验上 如果用户在访问一个网站时转而去访问另一 个网站 当他访问完后回到前一个网站再次发出与前一次完全相同的的请求 这时如果我 们能够直接读取数据 无疑会使用户的体验大大加强 后台 业务方面 1 提高程序本身性能 诸如进行字符串处理时使用 StringBuilder 代替 string 集合使用 List代替 ArrayList 提高算法性能等 2 减小返回内容的大小 用 Json 格式的对象代替字符串拼接等 3 当需要批量操作数据库时 尽量减少创建连接次数 1 在 SqlDataReader 读取批量数据的时候 我们可以一次性的将数据读出 放入 List或者 Dictionary中 然后进行数据的操作 而不是每次创建一个连接 具体代 码为设置 System Data CommandBehavior CloseConnection 在 DataReader 操作结束后再断 开连接 2 在 EntityFramework 增删改操作的时候 尽量集中附加对象 在最后进行 SaveChange 操作 4 慎用 ViewState 我们常用的状态保持技术有 ViewState 缓存 Cookie Session Application 等 这其中 ViewState 是记录页面信息的隐藏字段 如果不禁 用 在每一次创建控件树和判断 IsPostback 后服务器都需要对其进行解析 而服务器在页 面生命周期结束之前也会对其进行更新 将页面信息保存到 ViewState 中 返回给用户 这其中不但加重了页面代码的大量冗余 也增加了服务器处理解析的压力 其中尤以与数 据库交互产生的 ViewState 为多 5 尽量减少对文件的操作并限制用户上传文件的大小 6 图片水印等操作尽量在用户上传的时候完成 一些大型的网站为了保持数据的原态会忽 略这一操作 在用户访问的时候临时加水印 7 在必要的情况下使用缩略图代替原图 有时也可以在缩略图生成后删除原图 如用户头 像 原图我们一般不会使用 在生成缩略图之后 我们可以将原图删除 8 对于大量的文件我们可以采用树状结构存储 这样可以减少遍历文件的数量 9 将图片与 Web 服务器分离 10 很多时候网站的图片数量极为巨大 这时 我们就需要针对图片做一些优化 常用的 方法是 将图片的路径以树状方式存储在不同的服务器和数据库中 并以树状结构存储在 一台或几台单独的服务器上 11 进程外 Session 的使用 对于大型网站 往往服务端并不是在同一台服务器上 这时我 们就需要使用进程外 Session 使几个服务器共享 Session 值 12 使用缓存 Cache 避免频繁访问数据库或者硬盘上的资源 对于一些不是经常改变但又频繁使用的数据 我们需要添加到缓存 这样 我们就可 以减少访问数据库的次数 降低数据库的压力 1 比如重置用户密码时给用户发送邮件所需要的邮箱地址和密码等数据 我们就可 以放到缓存中 而数据库的数据发生改变时 我们只需要在修改数据库数据的代码中将该 缓存清除 等下一个用户在发出请求 修改后的数据自然会再次放到缓存中 进行重用 2 再比如大型网站的页 访问量非常大 我们不能在用户每次访问时都去读取全部 的内容 这样会非常消耗服务器的资源 所以我们应该根据各个模块 分别设置缓存 定 时刷新 这样就大大降低了服务器的压力 对于一些经常需要访问的文件 我们也可以将其添加到缓存 毕竟磁盘的读写是硬件 驱动的 所有信息都需要通过磁头写入到高速旋转的扇区中 而缓存却是电驱动 信息存 储十分快捷 所以我们可以利用这一特性 减少文件的访问 1 日志的存储 在用户和其他人员进行一些操作时 我们需要进行记录 将一些操作 或者异常信息写入到日志中 一旦这种操作十分频繁时 很容易出现问题 所以我们可以 设置定期的缓存 先将日志写入到缓存中 等缓存到期 再将缓存中的数据写入日志文件 然后清除缓存 重新创建 为了减少频繁操作 我们一般只会记录异常信息 13 分布式缓存的使用 缓存是一种空间换取时间的操作方式 所以为了分担服务器的压 力 我们需要将缓存放在不同的服务器上 目前我们常用的分布式缓存程序有 Memcached 和 MongoDb 等 14 事务的分流 服务级别的分布式事务操作往往占据事务锁时间比较长 一旦大量并发 很容易导致死锁 所以我们要根据服务的的重要性进行分级 除非有必要 一般的服务我 们直接以异步队列的方式执行 错误直接记录日志 这样 就大大减少了事务的数量 实 现了事物的分流 15 SOA 服务粒度的把控 SOA 服务粒度即是一个服务功能所包含功能的大小 有时候我们 完成一个操作往往需要实现很多功能 当使用细服务粒度的时候往往需要多次交互 而使 用粗服务粒度我们就可以有效的解决多次交互的问题 但同时粗服务粒度却又不够灵活 这就需要我们能够做到很好的把控 在需要的情况下尽量粗粒度化 服务器 1 优化 sql 语句 使用参数化查询 避免注入式漏洞攻击 调整 where 顺序 尽量减少遍历次数 查询语句避免使用 尽量使用 where 替代 havin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论