利用 cache 做对比静态页的网页技术

一直想写一套生成静态页面的文章系统 但面对生成静态后的一些复杂数据库交互问题。又望而却步!

于是就想 有没有 在不耽误数据交互的情况下,而又能降低服务器负担的方法呢!

一个网站,访问量最大的莫过于 首页 和主栏目页了。 其他的页面 我可以不去想, 首页和主栏目页 在大流量下服务器改如何承担呢。

根据我编程2年多来的总结经验我想去了一下方法!

不生成静态页 并且降低服务器负担!


代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
'读取远程文件的函数
Public Function readRemoteFile(RemoteDataUrl)
    Dim XMLHttp
    'On Error Resume Next
    Set XMLHttp = Server.CreateObject("Microsoft.XMLHTTP")
        With XMLHttp
            .Open "Get", RemoteDataUrl, False
            .Send
            readRemoteFile = BytesToBstr(.responseBody, "UTF-8")
        End With
    Set XMLHttp = Nothing   
End Function
'编码转换
Function BytesToBstr(body,Cset)
    dim objstream
    set objstream = Server.CreateObject("adodb.stream")
        objstream.Type = 1
        objstream.Mode =3
        objstream.Open
        objstream.Write body
        objstream.Position = 0
        objstream.Type = 2
        objstream.Charset = Cset
        BytesToBstr = objstream.ReadText 
        objstream.Close
    set objstream = nothing
End Function

Function tobody()
    Dim dateVal
                '先试图访问缓存,看有没有,或者过期没有
    dateVal = Application("defaultdate")
    If dateVal = "" Then dateVal = DateAdd("s",1200,Now)
    If Application("default") <> "" Then
        If DateDiff("s", Now, dateVal) > 0 Then
                                                '如果有,就从缓存读取,对服务器来说,就是从内存读取
            tobody = Application("default")&"<!--new cache"&dateVal&"-->"
            Exit Function
        End If
    End If
    Dim body
                '如果缓存没有,则从远程读取,并写入缓存,设置缓存时间。
    body = readRemoteFile("http://www.aoaob.com/default.asp")
    tobody = body&"<!--made cache"&Now&"-->"
    Application.Lock
    Application("default") = body
    Application("defaultdate") = DateAdd("s",1200,Now)
    Application.UnLock
End Function
Response.Write(tobody())
%>

(0)

相关推荐

  • 利用 cache 做对比静态页的网页技术

    一直想写一套生成静态页面的文章系统 但面对生成静态后的一些复杂数据库交互问题.又望而却步! 于是就想 有没有 在不耽误数据交互的情况下,而又能降低服务器负担的方法呢! 一个网站,访问量最大的莫过于 首页 和主栏目页了. 其他的页面 我可以不去想, 首页和主栏目页 在大流量下服务器改如何承担呢. 根据我编程2年多来的总结经验我想去了一下方法! 不生成静态页 并且降低服务器负担! 复制代码 代码如下: <%@LANGUAGE="VBSCRIPT" CODEPAGE="650

  • 详解ASP.NET MVC 利用Razor引擎生成静态页

    最近在研究ASP.NET MVC生成静态页,那么今天也算个学习笔记吧! 实现原理及步骤: 1.通过ViewEngines.Engines.FindView查找到对应的视图,如果是部分视图,则用:ViewEngines.Engines.FindPartialView: 2.设置上下文对象里的Model: 3.调用视图的Render()方法,将渲染结果保存到物理静态文件: using System; using System.IO; using System.Text; using System.W

  • 利用JS做网页特效_大图轮播(实例讲解)

    废话不多说,直接上代码: <style> * { margin: 0px; padding: 0px; } .stage { width: 500px; height: 300px; border: 5px solid black; margin: 200px; position: relative; overflow: hidden; } .to-left, .to-right { position: absolute; top: 0px; width: 50px; height: 300p

  • 生成静态页大全[ASP/PHP/ASPX]

    ASP生成静态网页的方法 随着网站访问量的加大,每次从数据库读取都是以效率作为代价的,很多用ACCESS作数据库的更会深有体会,静态页加在搜索时,也会被优先考虑.互联网上流行的做法是将数据源代码写入数据库再从数据库读取生成静态面,这样无形间就加大了数据库.将现有的ASP页直接生成静态页,将会节省很多. 下面的例子是将.index.asp?id=1/index.asp?id=2/index.asp?id=3/这三个动态页面,分别生成ndex1.htm,index2.htm,index3.htm存在

  • 利用vue写todolist单页应用

    网上有很多关于vue的todolist小程序.大多是利用vue-cli脚手架工具开发的,这个官网的文档也不支持新手从单文件开始学习.所以用大家熟悉的开发方式写了这个todolist,希望和大家一起学习. 1.vue是啥? Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.简单说是一个模板引擎,做过后端的应该很清楚,以前靠服务器端渲染的dom,放在浏览器端端渲染,vue拿到数据渲染成dom.当然vue不仅仅是用来干这个的,数据驱动,数据双向绑定,赋予了用户很

  • 转静态页的几种可行方案

    注:本文大部分内容来源www.netvtm.com,原作者:linyupark 对于文献发布系统来说SEO显得十分重要,当然现在转静态页也不是唯一优化的方式,但对于低智爬虫来讲静态页的优势很明显.下面来分析一下几种方案. 1.制作模板替换关键字符法很多站,包括本站上一个版本采用的就是这个方法.好处就是复杂性不大,缺点也很明显,实时交互性低,要提交一个评论可能就得让服务器重新生成一次文件,这种适用于纯粹信息发布,对于交互讲究不大的站. 2.利用服务器的组件进行请求地址的重定位用老外的话讲就是IIS

  • 利用python做表格数据处理

    技术背景 数据处理是一个当下非常热门的研究方向,通过对于大型实际场景中的数据进行建模,可以用于预测下一阶段可能出现的情况.比如我们有过去的2002年-2018年的黄金价格的数据: 该数据来源于Gitee上的一个开源项目.其中包含有:时间.开盘价.收盘价.最高价.最低价.交易数以及成交额这么几个参数.假如我们使用一个机器学习的模型去分析这个数据,也许我们可以预测在这个数据中并不存在的金价数据.如果预测的契合度较好,那么对于一些人的投资策略来说有重大意义.但是这种实际场景下的数据,往往数据量是非常大

  • 利用 filter 机制给静态资源 url 加上时间戳,来防止js和css文件的缓存问题

    直接上代码: public class WeiXinFilter implements Filter{ private static Logger logger = LoggerFactory.getLogger(WeiXinFilter.class); public void init(FilterConfig fConfig) throws ServletException {} public void destroy() {} public void doFilter(ServletReq

  • ASP.NET MVC使用RazorEngine解析模板生成静态页

    简述 Razor是ASP.NET MVC 3中新加入的技术,以作为ASPX引擎的一个新的替代项.在早期的MVC版本中默认使用的是ASPX模板引擎,Razor在语法上的确不错,用起来非常方便,简洁的语法与.NET Framework 结合,广泛应用于ASP.NET MVC 项目. 我们在很多项目开发中会常常用到页面静态化,页面静态化有许多方式,最常见的就是类似很多PHP CMS种使用的 标签替换的方式(如:帝国CMS.EcShop等),还有很多都是伪静态,伪静态我们就不做过多解释,通过路由或Url

  • 详解ASP.NET MVC 解析模板生成静态页(RazorEngine)

    简述 Razor是ASP.NET MVC 3中新加入的技术,以作为ASPX引擎的一个新的替代项.在早期的MVC版本中默认使用的是ASPX模板引擎,Razor在语法上的确不错,用起来非常方便,简洁的语法与.NET Framework 结合,广泛应用于ASP.NET MVC 项目. 我们在很多项目开发中会常常用到页面静态化,页面静态化有许多方式,最常见的就是类似很多PHP CMS种使用的 标签替换的方式(如:帝国CMS.EcShop等),还有很多都是伪静态,伪静态我们就不做过多解释,通过路由或Url

随机推荐