| 摘要 | 第5-7页 |
| Abstract | 第7-8页 |
| 第一章 绪论 | 第12-17页 |
| 1.1 选题的背景与意义 | 第12-13页 |
| 1.2 国内外研究现状 | 第13-15页 |
| 1.3 本文的研究内容 | 第15页 |
| 1.4 本论文的结构安排 | 第15-17页 |
| 第二章 Web应用程序的性能影响因素和衡量标准 | 第17-26页 |
| 2.1 Web应用程序的性能影响因素 | 第17-23页 |
| 2.1.1 浏览器响应时间的计算模型 | 第17-19页 |
| 2.1.2 HTTP协议的分析 | 第19-23页 |
| 2.2 使用用户感知的时延作为衡量标准 | 第23-24页 |
| 2.3 优化策略 | 第24-25页 |
| 2.4 本章小结 | 第25-26页 |
| 第三章 Web应用程序性能优化方案 | 第26-45页 |
| 3.1 减少HTTP请求数 | 第26-31页 |
| 3.1.1 页面装载时间模型 | 第26-28页 |
| 3.1.1.1 页面的大小与网络带宽的关系 | 第27页 |
| 3.1.1.2 网路延迟与HTTP请求数的关系 | 第27页 |
| 3.1.1.3 HTTP链接数目与Internet应用的并发度的关系 | 第27-28页 |
| 3.1.1.4 结论 | 第28页 |
| 3.1.2 图片的合成 | 第28-30页 |
| 3.1.3 合并脚本和CSS | 第30-31页 |
| 3.2 优化渲染速度 | 第31-39页 |
| 3.2.1 CSS放置与优化 | 第32-35页 |
| 3.2.1.1 Style Sheets置于页面头部 | 第32-34页 |
| 3.2.1.2 CSS的性能优化 | 第34-35页 |
| 3.2.2 脚本的放置与优化 | 第35-39页 |
| 3.2.2.1 脚本置于页面底部 | 第36-38页 |
| 3.2.2.2 脚本的无阻塞执行 | 第38-39页 |
| 3.3 浏览器缓存的优化 | 第39-43页 |
| 3.3.1 证明:缓存可以减少响应时延 | 第39-41页 |
| 3.3.2 缓存协商 | 第41-42页 |
| 3.3.2 彻底消灭请求 | 第42-43页 |
| 3.4 本章小结 | 第43-45页 |
| 第四章 Web请求处理流程的优化 | 第45-78页 |
| 4.1 当前的Web请求处理流程存在的问题 | 第45-46页 |
| 4.2 Web请求流水线化的构想 | 第46-47页 |
| 4.3 与传统的Web请求框架及AJAX模块化处理的比较 | 第47-51页 |
| 4.3.1 与传统的Web请求框架的比较 | 第47-49页 |
| 4.3.2 与AJAX模块化处理的比较 | 第49-51页 |
| 4.4 一个网页如何划分PageLet | 第51-52页 |
| 4.5 Page Let的优先级 | 第52-56页 |
| 4.5.1 静态的优先级 | 第52-53页 |
| 4.5.2 基于用户喜好的动态优先级 | 第53-56页 |
| 4.6 Page Let的组件的分离 | 第56-60页 |
| 4.6.1 一个资源的生命周期 | 第56-57页 |
| 4.6.2 拥有不同的域名 | 第57-59页 |
| 4.6.3 浏览器的并发数 | 第59-60页 |
| 4.7 Page Let的调度 | 第60-61页 |
| 4.7.1 串行化调度 | 第60页 |
| 4.7.2 并行化调度 | 第60-61页 |
| 4.8 基于struct2标签的Web请求流水线化的实现 | 第61-71页 |
| 4.8.1 单线程的实现方式 | 第62-66页 |
| 4.8.2 多线程的实现方式 | 第66-71页 |
| 4.9 性能测试分析 | 第71-75页 |
| 4.9.1 横向比较 | 第71-74页 |
| 4.9.2 纵向比较 | 第74-75页 |
| 4.10 请求流水线化的改进 | 第75-77页 |
| 4.10.1 存在的问题 | 第75-76页 |
| 4.10.2 增加一层调度机制 | 第76-77页 |
| 4.10.3 测试分析 | 第77页 |
| 4.11 本章小结 | 第77-78页 |
| 第五章 全文总结与展望 | 第78-80页 |
| 5.1 全文总结 | 第78页 |
| 5.2 展望未来 | 第78-80页 |
| 致谢 | 第80-81页 |
| 参考文献 | 第81-84页 |
| 攻读硕士学位期间取得的成果 | 第84-85页 |