`

使用Javascript缓存数据与延迟加载收藏

 
阅读更多

不论是直接从链接访问服务器获取数据还是使用了AJAX动态请求数据,只要一次性的传输数据量很大,还需要用脚本语言来将数据装入某个控件,都有可能导致显示缓慢,比如树形菜单,不需要太多条数据,200条就足够你等待5秒以上。
而基于实际中用户并不需要一次性看到所有数据,我们可以使用脚本来延缓加载,并且能够保证表象的显示,因为我们需要做的就是及时地显示一部分表面数据。

缓存数据包括二种格式:

一种是用户自定义的外部格式,它不属于缓存延迟加载构件,由用户指定,例如:

function DataObject(id,name,age,gender,edu)  ...{ 
   this.id=id;
   this.name=name;
   this.age=age;
   this.gender=gender;
   this.edu=edu;
}

 一种是缓存延迟加载器的内部格式,它是缓存延迟加载构件的一部分,代码如下:

function CacheData(params,funces) ...{
   this.params=params;
   this.funces=funces;
}

 它的目的就是封装用户数据格式:params对应用户自定义数据对象,funces对应的是方法名,解释为缓存一个要执行的方法funces,方法的参数为params.

缓存延迟加载器采用双缓冲区,可以一边操作数据,一边装入数据,特别针对树形数据结构:

var cache  = ...{ 
     //加载使用的表数据与大小,用于显示,加载表
     list: new Array(),
     count: 0,
    //装入使用的表数据与大小,用于缓存,缓存表
     _list: new Array(),
     _count: 0,
     //加载使用的当前游标
     cursor: 0,
    //延缓加载的时间间隔
     interval:100,
    //一次execute方法后的结束处理函数
     endfunc:"endfunc();",
    //缓存一条数据到内存
     add   :function(params,funces)...{
       this._list[this._count++]=new CacheData(params,funces); 
     },
    //清空数据缓存
     clear:function()...{
       this.list=null;
       this.count=0;
       this._list=new Array();
       this._count=0;
     },

    //获取当前正在加载的一行数据
     params :function()...{
       return this.list[this.cursor].params; 
     },
     funces :function()...{
       return this.list[this.cursor].funces; 
     },
    //延迟加载的执行方法
     execute: function() ...{
       //将缓存数据 从缓存表移动到加载表
        this.list=this._list; 
       this.count=this._count;
       //重置缓存表数据
       this._list=new Array();
       this._count=0;
       //遍历调用方法func并将游标定位在其相应参数
       for(var i=0;i<this.count;i++) ...{
           this.cursor=i; 
           eval(this.funces);
        }
       //执行恢复函数
        eval(this.endfunc);
       //如果缓存数据,再次延迟加载
       if(this._count>0)   setTimeout("cache.execute();",interval); 
             else                eval("cache.clear();");
     }
}

 在函数funces中参数调用必须使用:

 var   id        =      cache.params.id;
  var   name  =      cache.params.iname;

 

分享到:
评论

相关推荐

    延时加载+静态资源本地缓存

    "延时加载+静态资源本地缓存"是两种非常有效的技术手段,它们能够帮助我们实现这一目标。本篇文章将详细探讨这两种策略,以及如何将它们应用于实际项目中。 首先,让我们来看看静态资源本地缓存。静态资源通常包括...

    jquery.DataLazyLoad数据延迟加载插件

    **jQuery DataLazyLoad 数据延迟加载插件** 在Web开发中,数据延迟加载(Data Lazy Load)是一种优化网页性能的技术,它允许我们只在用户需要时才加载数据或内容,而不是一次性加载所有信息。jQuery DataLazyLoad...

    js文件 合并 压缩 缓存 延迟加载

    对于JavaScript,这意味着可以将非关键脚本放在文档底部,或者使用异步加载(async属性)或延迟加载(defer属性)来避免阻塞页面渲染。对于图片,可以使用Intersection Observer API或第三方库来实现视口内的图片...

    ext扩展 延时加载

    在延时加载场景中,模型通常包含用于与服务器通信的配置,如proxy设置,这可以指定如何异步获取数据。BudgetWeaveModel可能定义了一个与预算管理相关的数据模型,可能包含了与财务预算或者项目预算相关的字段和规则...

    【JavaScript】图片延迟加载方案1

    本文将深入探讨基于JavaScript实现的图片延迟加载方案,特别是第一种常见方法。我们将讨论该技术的基本原理、实现步骤以及一些优化策略。 一、基本原理 1. 基本思想:默认情况下,网页中的图片不会立即加载,只有...

    延迟加载技术

    因此,合理地权衡性能优化与用户体验,恰当使用缓存策略,以及预加载技术,是实施延迟加载时需要考虑的关键问题。 总的来说,延迟加载是一种高效的技术,它通过推迟非关键资源的加载,优化了系统性能,改善了用户...

    JS前端数据缓存,用于富交互的前端数据缓存

    当用户与应用交互时,如果每次操作都需要向服务器请求新数据,不仅会增加服务器负担,还可能导致页面加载延迟,影响用户体验。通过在本地存储数据,我们可以避免不必要的网络通信,加快页面响应速度。 JS提供了多种...

    页面滚动到底部自动加载数据

    为了减少网络延迟,可以考虑使用浏览器缓存或服务端缓存策略,比如在用户首次加载数据时存储在本地,后续滚动加载时优先从本地读取,只有在缓存不足时才向服务器请求。 综上所述,实现“页面滚动到底部自动加载数据...

    瓦片地图实现(缓存加载,像素单位平移,缩放)

    通过预先下载并存储用户可能需要的地图瓦片,可以减少网络延迟,使地图加载更快。一般有两种缓存策略:本地存储和服务器端缓存。本地存储通常利用浏览器的Web Storage或IndexedDB进行,当用户访问过的瓦片在本地缓存...

    dhtmlxgrid大数据的延迟加载

    dhtmlxGrid是一款功能强大的JavaScript表格控件,它支持大量数据的展示和处理。在处理大数据时,一次性加载所有数据可能会导致页面响应速度变慢,甚至浏览器崩溃。为了解决这个问题,dhtmlxGrid提供了延迟加载(也...

    大数据量高性能前端表格grid 动态加载数据

    "大数据量高性能前端表格grid 动态加载数据"这一技术主题,旨在优化用户体验,解决因一次性加载大量数据导致的页面卡顿问题。本文将深入探讨如何实现这种高效的数据加载策略。 首先,"高性能grid"是指一种能够快速...

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

    地图服务通常是大数据量、高交互性的应用,JavaScript客户端用于构建交互式的地图界面,而预缓存技术则有助于减少延迟,提升用户体验。 首先,理解REST地图服务。地图服务通常由地理信息系统(GIS)服务器提供,如...

    【JavaScript源代码】一文读懂JavaScript 中的延迟加载属性模式.docx

    ### JavaScript中的延迟加载属性模式详解 #### 一、引言 在现代Web开发中,JavaScript作为客户端脚本语言被广泛应用于构建动态网页和复杂的应用程序。随着应用规模的增长和技术的发展,开发者面临着各种性能优化的...

    JavaScript 的性能优化:加载和执行.docx

    5. **CDN(内容分发网络)**:使用CDN服务托管JavaScript库,利用其缓存机制,减少首次加载时间。 6. **删除不必要的脚本**:定期审查和删除不再使用的脚本,避免无效的性能开销。 7. **减少DOM操作**:频繁的DOM...

    大数据时代性能与缓存的优化

    在大数据时代,面对海量的数据处理和分析,性能与缓存的优化显得至关重要。数据库、页面以及缓存是数据处理流程中的关键环节,它们的优化能够显著提升系统效率,降低延迟,提高用户体验。以下是对这些关键知识点的...

    下拉加载数据

    - **数据缓存**:对于已加载过的数据,前端可以进行缓存,避免重复请求,提高用户体验。 - **分页策略**:合理设置每次加载的数据量,过少可能会频繁请求,过多则可能导致页面卡顿。 总的来说,下拉加载数据是一种...

    C#缓存的使用

    4. 静态资源:网页静态元素(图片、CSS、JavaScript)的缓存,可以加速页面加载。 三、C#缓存实现方式 1. .NET Framework的`System.Web.Caching.Cache`:适用于ASP.NET Web应用程序,提供简单的键值对存储,过期...

    JavaScript提高加载和执行效率的方法

    异步加载与延迟执行异步加载(async)和延迟执行(defer)是两种可以改善JavaScript加载和执行效率的技术。 1. 异步加载(async):通过在标签中添加async属性,可以让浏览器非阻塞地下载JavaScript文件,即在下载...

    根据滚动条加载数据

    5. **优化用户体验**:为了防止连续触发滚动事件,可以设置一个短暂的延迟(如使用`debounce`函数)或者在加载过程中禁用滚动事件。 **性能优化考虑:** 1. **分页大小**:每次加载的数据量不宜过大,以免阻塞页面...

Global site tag (gtag.js) - Google Analytics