`
ningxiaotao
  • 浏览: 43291 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

客户端存储与JavaScript性能优化

阅读更多

客户端存储:

 

  • Cookie
缺点:
每个 cookies的大小不能超过4096字节
一般至多允许每个网站使用20个
一些浏览器要求所有网站总共的cookie数不能超过300个
不能跨浏览器
每次请求都会把数据发送到服务器端
        
优点:
浏览器支持最全面
和服务器交互方便

  • Flash Share Object
优点:
Key-Value存储方式
默认提供了100k,可向用户申请更大的空间
浏览器支持情况良好
跨浏览器
缺点:
要求浏览器安装Flash插件
Flash Player 6+
必须在页面中加载一个flash,而且得保证flash可以正常工作

  • User Data
特点:
单个页面提供128K 每个domain提供1024K
IE5.5+浏览器支持
不能跨浏览器
只能在相同路径下的不同页面间共享
  • Dom Storage
三种形式
sessionStorage 、localStorage和globalStorage
globalStorage是与localStorage类似的早期实现
sessionStorage 会话结束时就会销毁
localStorage是持久化存储
sessionStorage和localStorage总共提供了10M的存储空间

  • Window.name
Window原生对象的一个属性,所有浏览器都支持
提供了2MB~~60MB的空间
只有在链接跳转时才能传递数据
可以跨页面,跨域
可以在页面的domready事件之前使用
不能够持久化

  • Silverlight
提供了一个IsolatedStorageFile独立存储的API
默认为每个应用提供了1M的空间
跨浏览器
需要安装Silverlight插件
silverlight现在的安装率已经达到了60%

  • Google Gears
基于SQLite
默认为每个应用提供了1M的空间,可向用户申请更大的空间
需要安装GoogleGears插件
支持全文检索
Google不再打算支持此技术了

  • Open Database
HTML 5 正宗的存储方案
每个域名提供5MB的存储空间
SQL 语言的支持
事务支持

  • Application Cache


下面是各种方式的有缺点对比已经浏览器支持情况

JavaScript性能优化:

 

 

  • JavaScript 更多的时候是和 DOM 、 BOM 在协同工作
  • 更多的时候是 CSS 和 DOM 让 javascript 变慢

 

  • HTMLCollection
 Collections in the HTML DOM are assumed to be live meaning that they are automatically updated when the underlying document is changed.

因此对于我们有用的优化方法

  • 尽量减少对元素属性的访问 -- 把经常要访问的属性存储在本地变量中
  • 如果要访问一组元素可以将它们存储在一个数组对象当中

 

  • Reflow & Repaint
  • Reflow ( 回流 ) 是导致 DOM 脚本执行低效的一个关键因素。页面上任何一个结点触发 reflow ,都会导致它的子结点及祖先结点重新渲染
  • Repaint( 重绘 ) 是在一个元素的外观被改变,但没有改变布局的情况下发生,如改变 visibility 、 outline 、前景色
  什么时候发生 Reflow & Repaint

  • 添加,删除,更新 DOM 节点
  • 通过 display: none 用隐藏 DOM 节点(导致 reflow 和重绘)或者用 visibility: hidden (只导致重绘,因为位置不变)
  • 在页面移动 DOM 节点,或者使用动画
  • 添加样式表,调整 style 属性
  • 调整窗口大小,改变字体大小,还有滚动页面

因此对于我们有用的优化方法


  • Off-Document Operations
  • 批量改变样式
  • 修改不可见元素 -- 如果一个元素的 display 样式被设置为 none ,即使其内容变化也不再需要重绘 (Repaint) 此元素,因为根本就不会显示此元素。 注意尽量避免不必要的 reflow

 

 

  • 大小: 159.1 KB
分享到:
评论

相关推荐

    Performance客户端性能工具

    "Performance客户端性能工具"是针对JavaScript开发中的一个关键领域,主要关注的是提升应用程序的运行效率和用户体验。在现代Web开发中,性能优化是至关重要的,因为它直接影响到网站的加载速度、响应时间以及用户对...

    客户端资源客户端资源客户端资源

    客户端资源的优化对于提升用户体验、减少加载时间以及提高网站性能至关重要。 首先,我们要理解客户端资源的构成。在网页应用中,HTML(超文本标记语言)定义了页面的结构,CSS(层叠样式表)负责页面的布局和视觉...

    SignalKJavaScript客户端库_JavaScript_下载.zip

    SignalK JavaScript 客户端库是为开发与SignalK服务器交互的应用程序而设计的一个关键工具。SignalK是一种开放源码的航海数据标准,它提供了一种标准化的方式来收集、存储和分享船舶的实时信息,如航向、速度、位置...

    一个基于ASP.NET 的js客户端处理技术JavaScript Tips 之二。

    此外,文档可能还会涵盖错误处理、性能优化以及如何利用jQuery等库来简化JavaScript编程。 `App_Data`是一个特殊文件夹,用于存储ASP.NET应用程序的数据,例如数据库文件或配置文件。虽然不是直接的JavaScript知识...

    网站性能优化1

    网站性能优化是提升用户体验、降低服务器负担的关键环节,尤其在当今互联网环境中,用户对网页加载速度有着极高的期待。本文将深入探讨网站性能优化的方案和原理,主要围绕"高性能网站建设指南(上1).pdf"这份资料...

    让你页面速度飞起来 Web前端性能优化(视频教程+ppt)

    ### Web前端性能优化知识点 #### 一、构建优化 **1.1 文件压缩与合并** - **文件压缩**:利用工具如UglifyJS、Terser等对JavaScript、CSS等静态资源进行压缩,减少文件体积,从而加快加载速度。 - **文件合并**:...

    WEB客户端技术 WEB客户端技术

    **Web安全与性能优化** Web安全不容忽视,包括防止XSS(跨站脚本攻击)、CSRF(跨站请求伪造)等。同时,性能优化也是重要一环,例如减少HTTP请求、压缩资源、使用CDN(内容分发网络)等方法可以显著提升页面加载...

    用节点编写的用于弹性搜索的客户端_JavaScript

    总的来说,`node-elasticsearch-master`项目提供了一个强大的工具,使得开发者可以用JavaScript方便地进行Elasticsearch的开发工作,无论是数据的存储、检索还是复杂的分析任务,都能得到很好的支持。对于那些想要...

    ASP.NET性能优化

    ASP.NET性能优化是Web开发领域中的一个重要话题,尤其对于构建大型、高访问量的网站而言,性能优化至关重要。本文将深入探讨ASP.NET平台下的一些关键性能优化策略和技术,旨在帮助开发者提升网站的响应速度和处理...

    高性能javascript设计

    1. **数据结构与算法选择**:JavaScript中的对象、数组、字符串等都有不同的性能特征。例如,哈希表(对象)用于快速查找,数组则适合顺序访问。选择合适的数据结构可以显著提升代码执行效率。 2. **DOM操作优化**...

    ASP.NET+MVC+3性能优化

    ### ASP.NET MVC3性能优化全解析 #### 一、理解HTTP、Cache与AJAX基础知识 在探讨ASP.NET MVC3性能优化之前,我们首先需要对HTTP协议、缓存机制以及AJAX有基本的理解。HTTP(Hypertext Transfer Protocol)是...

    GWT性能优化,利用GWT开发高性能Ajax应用,始终做好缓存, 程序压缩

    【GWT性能优化:开发高性能Ajax应用的关键】 Google Web Toolkit(GWT)是Ajax开发领域的一个强大工具,它以其独特的特性和优势提升了Ajax应用的性能和用户体验。GWT通过将Java代码编译为高度优化的JavaScript,...

    JavaScript客户端-在调用REST地图服务的同时使用5.0预缓存

    JavaScript客户端在调用REST地图服务时使用5.0预缓存是一种优化Web应用程序性能的策略。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,允许客户端通过URL来获取、...

    Java Servlet模式的WebGIS性能优化研究 (1).pdf

    Java Servlet模式的WebGIS性能优化研究主要关注在服务器端如何提升WebGIS系统的性能,从而改善客户端用户的使用体验。WebGIS,即Web地理信息系统,是一种基于Web的地理信息处理和服务技术,它结合了互联网的分布式...

    第三章:页面渲染架构设计与性能优化.pdf

    页面渲染架构设计与性能优化是前端开发中一个重要的领域,它直接关系到用户对网站的体验。优化页面渲染架构可以减少页面加载时间、提升响应速度、提高用户的交互体验。本章节将介绍页面渲染过程中的关键环节、技术...

    JavaScript_一个简单、快速、可扩展的AWS客户端.zip

    6. **性能优化**:可能包含缓存策略、批量操作等功能,以提高性能并减少网络请求。 7. **文档齐全**:"说明.txt"文件可能包含了详细的操作指南和API参考,帮助开发者了解如何使用这个轻量级客户端。 在实际应用中...

    android客户端实现与服务器交互的用户登录功能

    在Android客户端实现与服务器交互的用户登录功能是一个基础但至关重要的任务,这涉及到客户端与服务端的通信协议...在实际开发中,还需要关注性能优化、用户体验设计、异常处理等多个方面,确保整个流程的顺畅和安全。

    客户端js性能优化小技巧整理

    客户端JavaScript性能优化是提高网页应用响应速度和用户体验的关键。以下是一系列针对客户端JS性能优化的小技巧: 1. **循环优化**: - 避免使用`for-in`循环,因其需要查询对象的哈希键,效率较低。推荐使用`for...

Global site tag (gtag.js) - Google Analytics