这是 JavaScript 写的asp, 看不懂的完了.

其实我根本不想发出来的,因为夸我的人太少了.
如果你以后还想来点经典的怪异思维代码,来,夸我两句.

此代码目的:
不用asp创建Html文件的缓存机智来节约服务器消耗,
直接使用asp来模拟Html的缓存机智,让代码更简单.

好处:
1.比单纯的asp文件优秀得多,开启了缓存机智,不需要任何次都查询多次数据库.
2.而且更改代码更容易,Html静态改次动态代码就得重新生存所有文件.

坏处:
1.相对比Html静态文件来说,他多了模拟缓存的步骤
但是Html静态实际也是由IIS去执行缓存判断,但是ASP执行效率太慢,所以这变成了坏处.如果ASPX的话,这点可以忽视
2.每次模拟缓存时,都会去查询一次asp文件是否发生更改,这里会有一次IIS的查询,还有一次组件的查询,比默认asp多了一次查询.
而静态文件只会查询一次静态文件是否发生更改.
3.每次模拟查询都会去数据库获得一次TimesTamp数据.

修改代码方式:
1.第八行 修改数据连接.
2.在任意数据库中增加数据库字段名称为TimesTamp数据库字段类型为TimesTamp的字段
3.修改38.82行数据库连接方式.

<%@LANGUAGE="JAVASCRIPT"%>
<%
var Conn = {}
Conn.Id = function(DaData){
        var Result = + ( ( DaData + "" ) || 0 )
        return ( Result > 0 ) ? Result : 0
}
Conn.ConnText = "driver={SQL Server}; server=127.0.0.1; uid=sa; pwd=; database=DADA"
Conn.Create = function(){
        try {
                Conn.Object = new ActiveXObject("ADODB.Connection");
        } catch(Error) {
                Conn.Object = null
                Response.Write("无法创建数据库对象。" + Error )
                Response.End()
        }
        try {
                Conn.Object.Open(Conn.ConnText)
        } catch(Error) {
                Conn.Object = null
                Response.Write("无法打开数据库。" + Error )
                Response.End()
        }
}

Conn.Create()

//获取asp文件的最后修改豪秒
var HaFso = new ActiveXObject("Scripting.FileSystemObject");
var HaFile = HaFso.GetFile(Server.MapPath(Request.ServerVariables("SCRIPT_NAME")));
var HaAspModifiedTime = new Date(HaFile.DateLastModified).getTime()
var HaFile = null
var HaFso = null

//检测数据库是否发生变化
var HaRs = Conn.Object.Execute("SELECT CAST([TimesTamp] AS int) AS [TimesTamp] FROM [User] WHERE ID = '" + Conn.Id(Request("Id")) + "'")
//最多15个9可转换为日期,但是TimesTamp最长为21个数字,18446744073709551615
var HaTimesTamp = +HaRs.Fields("TimesTamp") + HaAspModifiedTime
HaTimesTamp = parseInt( ( HaTimesTamp / 1000000000000 - (HaTimesTamp / 1000000000000 >> 0) ) * 1000000000000000 )
HaRs.Close()

var HaIfModifiedSince = new Date(HaTimesTamp).toUTCString()
var HaIfNoneMatch = "000000000000000000".substr(HaTimesTamp.toString(36).length) + HaTimesTamp.toString(36).toUpperCase()
var HaHTTP_IF_MODIFIED_SINCE = new Date(Request.ServerVariables("HTTP_IF_MODIFIED_SINCE")).toUTCString()
var HaHTTP_IF_NONE_MATCH = ( Request.ServerVariables("HTTP_IF_NONE_MATCH") + "" ).toUpperCase()

if ( HaIfModifiedSince == HaHTTP_IF_MODIFIED_SINCE ) {
        Response.Status = 304
        Response.AddHeader("ETag", HaIfNoneMatch)
        Response.End()
}else{
        Response.Status = 200
        Response.AddHeader("Last-Modified", HaIfModifiedSince)
        Response.AddHeader("ETag", HaIfNoneMatch)
}

//测试
if ( false ) {
        Response.Write( new Date().getTime() + "<br>" )
        Response.Write( "If-Modified-Since : " + HaIfModifiedSince + "<br>" )
        Response.Write( "ETag : " + HaIfNoneMatch + "<br>" )
        Response.Write( "HTTP_IF_MODIFIED_SINCE : " + HaHTTP_IF_MODIFIED_SINCE + "<br>" )
        Response.Write( "HTTP_IF_NONE_MATCH : " + HaHTTP_IF_NONE_MATCH + "<br>" )
}

//这里以下是显示内容的代码
Application("Number") = ( Application("Number") || 0 ) + 1
Response.Write( "SQL查询次:" + Application("Number") + "<br>" )

var HaDate = new Date()
Response.Write(
"当前数据缓存日期:"
+ HaDate.getFullYear() + "-" + HaDate.getMonth() + "-" + HaDate.getDay() + "-" + HaDate.getDate()
+ " "
+ HaDate.getHours() + ":" + HaDate.getMinutes() + ":" + HaDate.getSeconds() + ":" + HaDate.getMilliseconds()
)

var HaRs = Conn.Object.Execute("SELECT * FROM [User] WHERE ID = '" + Conn.Id(Request("Id")) + "'")
Response.Write("<table border=\"1\" cellpadding=\"5\" cellspacing=\"0\" bordercolor=\"#CCCCCC\">")
Response.Write("<tr>")
for ( var i = 0; i < HaRs.Fields.Count ; i++ ) {
        Response.Write( "<td>" + HaRs.Fields(i).Name + "</td>" )
}
Response.Write("</tr>")
Response.Write("<tr>")
for ( var i = 0; i < HaRs.Fields.Count ; i++ ) {
        Response.Write( "<td>" + (HaRs.Fields(i).Value || " ") + "</td>" )
}
Response.Write("</tr>")
Response.Write("</table>")
HaRs.Close()
%>

转载于:https://www.cnblogs.com/aspphpvbs/archive/2013/04/21/3034276.html

asp+MsSQL2000模拟Html静态文件缓存相关推荐

  1. ASP.NET Core使用静态文件、目录游览与MIME类型管理

    前言 今天我们来了解了解ASP.NET Core中的静态文件的处理方式. 以前我们寄宿在IIS中的时候,很多静态文件的过滤 和相关的安全措施 都已经帮我们处理好了. ASP.NET Core则不同,因 ...

  2. 禁止静态文件缓存的方法,可用于JS与CSS文件上

    什么情况下,要禁止静态文件缓存: 1.经常可能要改动的 js, css.        比如 一个html 文件, test.html 在 1.0版本中.可能是这样      <script s ...

  3. apache缓存php页面不改变,Apache服务器禁止静态文件缓存的实现方法

    之前在<PHPnow中开启apache的浏览器缓存(max-age)功能>一文中,余斗主要讲了如何开启apache服务器的缓存功能,然而很多时候线上如果缓存静态文件能够提高服务器性能和用户 ...

  4. nginx静态文件缓存

    nginx的一大功能就是完成静态资源的分离部署,减轻后端服务器的压力,如果给这些静态资源再加一级nginx的缓存,可以进一步提升访问效率. 第一步:添加nginx.conf的http级别的缓存配置 # ...

  5. Nginx缓存、静态文件缓存配置

    Nginx静态Server基本配置 server {listen 80; #监听的端口server_name www.test.com; #监听的域名charset utf-8;#编码root /us ...

  6. 网站静态文件缓存的处理

    在网站开发过程中,我们会遇到这样的问题:每次更行css,js文件,都需要清理流量器缓存,现在提供几种解决方法: 1.对于Ajax  的请求(不管是静态数据还是动态数据): //以下三种方法使用其中任何 ...

  7. nginx 静态文件缓存

    目的: 缓存nginx服务器的静态文件.如css,js,htm,html,jpg,gif,png,flv,swf,这些文件都不是经常更新.便于缓存以减轻服务器的压力. 实现: nginx proxy_ ...

  8. ASP.NET Core:静态文件

    在Web开发中,如js脚本.css样式.图片等的静态文件通常占据了很大一部分.ASP.NET Core提供了三个中间件来处理这种针对静态文件的请求.利用它们我们不经可以将物理文件发布为通过http请求 ...

  9. 利用ASP .NET Core的静态文件原理实现远程访问Nlog日志内容及解决遇到的坑

    最近项目上试运行发现,很多时候网站出了问题或者某个功能不正常,常常需要运维人员去服务器里面查看一下日志,看看日志里面会产生什么异常,这样导致每次都要去远程服务器很不方便,有时服务器是客户保管的不能让我 ...

最新文章

  1. GDCM:读取PatientName的测试程序
  2. 公共的Controler,是给非授权的用户访问
  3. ul 原点显示_web前端开发学习教程,CSS HTML - ul li列表原点如何相连
  4. mongodb创建local库用户_mongodb用户与角色使用
  5. prototype.js 源码解读v1.3.1版本
  6. 一个电商项目【拉手团购】购物App(已开源)
  7. 容器技术Docker K8s 27 容器服务ACK基础与进阶-监控管理
  8. storm中分组策略Field Grouping简单总结笔记
  9. 免费杀软中的王者:德国小红伞评测
  10. php怎么获取图片信息,PHP 获取图片信息exif
  11. python爬取别人qq空间相册_用python爬取QQ空间
  12. 软件测试工程师必备技能(初中高)
  13. ROS(RouterOS)实现一线多拨+负载均衡(多图)
  14. M3U8 文件介绍 与 播放方法
  15. matlab 差分方程的解(解答qq网友)
  16. Idea中文件图标发生变化,导致文件显示出现异常
  17. 循环体中continue、break语句的使用
  18. 固定电话+手机号码 正则表达式
  19. gprs模块连接到服务器,如何再使用AT命令
  20. 【视频理解论文】——TSM:Temporal Shift Module for Efficient Video Understanding

热门文章

  1. python可以从事什么工作-学Python能干什么工作?工作前景怎么样?
  2. python需要php吗-PHP会被Python取代吗?
  3. 自学python转行-转行学习python 需要多久?应该如何学习?
  4. python实现简单的api接口-简单实现Python调用有道API接口(最新的)
  5. python编程入门到实践目录-Python编程从入门到实践笔记——文件
  6. python基础知识填空-Python基础知识(1)
  7. 自学python网站推荐-给初学者推荐的10个Python免费学习网站!赶紧收藏吧!
  8. java和python哪个好就业2020-JAVA和Python哪个好就业?
  9. 10元权限gm游戏_游戏P图超能打!揭秘10年老本儿500元升级计划
  10. 题目1033:继续xxx定律