• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP > ASP javascript Application对象的Contents和StaticObjects做Cache的一些经验

ASP javascript Application对象的Contents和StaticObjects做Cache的一些经验

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了ASP javascript Application对象的Contents和StaticObjects做Cache的一些经验等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
Application对象内置集合有为存放简单类型设计的Contents,默认Application("key")就可以使用。

不过Application.Contents不能存放对象,可以存vbs数组,但是在javascript下甚至数组都不能放。

使用Application.Contents时,只能用丑陋的如:

for(var i=0;i<15000;i++){
    Application.Lock();
       // Application.Contents(i)="sdfdsffdsaf";
        Application(i)="sdfdsffdsaf";
Application.Unlock();}

在这里往Application.Contents存放了1.5w个String,共花费时间234ms.

改用Application.StaticObjects后:
 定义一个Dictionary作为StaticObject,用于存放数据,因为StaticObject是不允许直接访问的。
  <object id="dict" runat="server" scope="Application" progid="Scripting.Dictionary"></object>

 Scripting.Dictionary本身的速度很快,不会对比较StaticObjects集合速度造成太大影响.

 Dictionary的速度:
    var d=new ActiveXObject("Scripting.Dictionary");
    for(var i=0;i<15000;i++){
        d.Item(i)="sdfdsffdsaf";}
  1.5w次插值,172ms
 当然自定义对象var d=new Object(); d[i]=..更快,1.5w次只要80-90ms,不过功能弱多了,所以还是用字典.

 下面看正式测试
    for(var i=0;i<15000;i++){
        Application.Lock();
        Application.StaticObjects("dict").Item(i)="sdfdsffdsaf";
        Application.Unlock();}
 时间长达6953ms,初步判断StaticObjects集合的访问速度是不能满足Cache的要求了,这个速度和ADO OLEDB读sql server 2000的时间相差无几。

 不过还不打算马上放弃,因为StaticObjects的优势在于可以存放Object,而Dictionary也可以存放其它对象,这样可以做为缓存对象,而不仅仅是数据。  

我在Application.StaticObjects("dict")里面再放入一个Object:
  Application.StaticObjects("dict").Item("o")=new Object();

    for(var i=0;i<15000;i++){
       Application.Lock();
       Application.StaticObjects("dict").Item("o")[i]="sdfdsffdsaf";
       Application.Unlock();}

  6656ms,快了点点.多一层Object并没有降低速度,那么速度的慢并非结构复杂,而是StaticObjects的访问占用。

 把dict的引用预存
 var t=Application.StaticObjects("dict");

    for(var i=0;i<15000;i++){
       Application.Lock();
       t.Item("o")[i]="sdfdsffdsaf";
       Application.Unlock();}

  3094ms,成功的减少一半多点的时间,js中屡试不爽的预存策略,要是把t.Item("o")也预存呢?

 var t=Application.StaticObjects("dict").Item("o");

    for(var i=0;i<15000;i++){
       Application.Lock();
       t[i]="sdfdsffdsaf";
       Application.Unlock();}

  125ms,终于成功了,只有Application.Contents的一半。看来时间主要花费在取得'引用',而不是StaticObjects内存区被保护慢。StaticObjects相对Contents安全措施更好,因为里面要存对象。

  靠Dictionary强大的功能,适当的封装一下,用put(),get(),contains()等等流行方法访问,就是一个强大的Cache了。

 ////备注
  我封装了一个.sct组件;asp javascript写的,有空发上来,今天到此。

  测试了取得Contens和StaticObjects引用的速度,在20次时都是0ms,100次大约5倍速度,500-1500次是10倍速度差距。不过取得后存取不受影响。
</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-11一个sql查询器,自动画表格填字段
  • 2017-05-11三种禁用FileSystemObject组件的方法
  • 2017-05-11asp WAP获取手机终端信息的一段代码
  • 2017-05-11asp 自定义分段函数/求第N名成绩
  • 2017-05-11ASP基础入门第六篇(ASP内建对象Request)
  • 2017-05-11新增加一个防垃圾评论的asp代码,鄙视垃圾
  • 2017-05-11一个强健 实用的asp+ajax二级联动菜单(有演示和附源程序打包下载)
  • 2017-05-11asp 判断是否为搜索引擎蜘蛛的代码
  • 2017-05-11利用ASP实现在线生成电话图片效果脚本附演示
  • 2017-05-11在ASP中连接MySQL数据库的方法,最好的通过ODBC方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ASP在ACCESS中模糊查询"内存溢出"的解决方法
    • 跨站脚本执行漏洞详解与防护
    • 循环取值Request.QueryString的用法
    • Asp 使用 Microsoft.XMLHTTP 抓取网页内容并过滤需要的
    • asp 使用正则表达式替换word中的标签,转为纯文本
    • Webform 内置对象 Session对象、Application全局对象,ViewState详细介绍
    • fso实例
    • asp调用Word打印的代码
    • ASP怎么谈到应用到类的?
    • 用asp实现文件浏览、上传、下载的程序

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有