`
wezly
  • 浏览: 483566 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

可缓存的动态页面设计

阅读更多

什么样的页面能够比较好的被缓存服务器缓存呢?如果返回内容的HTTP HEADER中有"Last-Modified"和"Expires"相关声明,比如:
Last-Modified: Wed, 14 May 2003 13:06:17 GMT
Expires: Fri, 16 Jun 2003 13:06:17 GMT
前端缓存服务器在期间会将生成的页面缓存在本地:硬盘或者内存中,直至上述页面过期。
因此,一个可缓存的页面:

  • 页面必须包含Last-Modified: 标记
    一般纯静态页面本身都会有Last-Modified信息,动态页面需要通过函数强制加上,比如在PHP中:
    // always modified now
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

  • 必须有Expires或Cache-Control: max-age标记设置页面的过期时间:
    对于静态页面,通过apache的mod_expires根据页面的MIME类型设置缓存周期:比如图片缺省是1个月,HTML页面缺省是2天等。
    <IfModule mod_expires.c> 
        ExpiresActive on
        ExpiresByType image/gif "access plus 1 month"
        ExpiresByType text/css "now plus 2 day"
        ExpiresDefault "now plus 1 day"
    </IfModule>
     

    对于动态页面,则可以直接通过写入HTTP返回的头信息,比如对于新闻首页index.php可以是20分钟,而对于具体的一条新闻页面可能是1天后过 期。比如:在php中加入了1个月后过期:
    // Expires one month later
    header("Expires: " .gmdate ("D, d M Y H:i:s", time() + 3600 * 24 * 30). " GMT");

  • 如果服务器端有基于HTTP的认证,必须有Cache-Control: public标记,允许前台

ASP应用的缓存改造 首先在公用的包含文件中(比如include.asp)加入以下公用函数:

<%
' Set Expires Header in minutes
Function SetExpiresHeader(ByVal minutes) 
    ' set Page Last-Modified Header:
    ' Converts date (19991022 11:08:38) to http form (Fri, 22 Oct 1999 12:08:38 GMT)
    Response.AddHeader "Last-Modified", DateToHTTPDate(Now())
    
    ' The Page Expires in Minutes
    Response.Expires = minutes
    
    ' Set cache control to externel applications
    Response.CacheControl = "public"
End Function 
' Converts date (19991022 11:08:38) to http form (Fri, 22 Oct 1999 12:08:38 GMT)
Function DateToHTTPDate(ByVal OleDATE)
  Const GMTdiff = #08:00:00#
  OleDATE = OleDATE - GMTdiff
  DateToHTTPDate = engWeekDayName(OleDATE) & _
    ", " & Right("0" & Day(OleDATE),2) & " " & engMonthName(OleDATE) & _
    " " & Year(OleDATE) & " " & Right("0" & Hour(OleDATE),2) & _
    ":" & Right("0" & Minute(OleDATE),2) & ":" & Right("0" & Second(OleDATE),2) & " GMT"
End Function 
Function engWeekDayName(dt)
    Dim Out
    Select Case WeekDay(dt,1)
        Case 1:Out="Sun"
        Case 2:Out="Mon"
        Case 3:Out="Tue"
        Case 4:Out="Wed"
        Case 5:Out="Thu"
        Case 6:Out="Fri"
        Case 7:Out="Sat"
    End Select
    engWeekDayName = Out
End Function
Function engMonthName(dt)
    Dim Out
    Select Case Month(dt)
        Case 1:Out="Jan"
        Case 2:Out="Feb"
        Case 3:Out="Mar"
        Case 4:Out="Apr"
        Case 5:Out="May"
        Case 6:Out="Jun"
        Case 7:Out="Jul"
        Case 8:Out="Aug"
        Case 9:Out="Sep"
        Case 10:Out="Oct"
        Case 11:Out="Nov"
        Case 12:Out="Dec"
    End Select
    engMonthName = Out
End Function
%>

 
然后在具体的页面中,比如index.asp和news.asp的“最上面”加入以下代码:HTTP Header

<!--#include file="../include.asp"-->
<%
'页面将被设置20分钟后过期
SetExpiresHeader(20)
%>
 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    大学动态网页设计通用报告

    【大学动态网页设计通用报告】是一份综合性的文档,旨在为学习和研究动态网页设计的大学生提供指导。这份报告深入探讨了动态网页设计的核心概念、技术应用以及在大学教育中的重要性。动态网页设计是互联网技术发展的...

    帝国CMS清理动态缓存插件

    在动态网站中,缓存技术是必不可少的,它能够存储频繁访问的数据,减少数据库的负担,加快页面加载速度。然而,随着时间的推移,缓存可能会积累大量过时或者不再需要的信息,这时就需要进行清理,以保持系统的高效...

    redis页面缓存html使用redis实现页面缓存.docx

    本文档主要介绍了使用 Redis 实现页面缓存的方法,包括缓存 key 的设计、缓存实现的思路和代码实现。 页面缓存的目的:页面缓存的主要目的是为了提高网站的访问速度和用户体验。通过将页面缓存到 Redis 中,可以...

    脚本语言与动态网页设计课件

    《脚本语言与动态网页设计》是由张景峰主编,由中国水利水电出版社在2004年出版的一部教材,旨在深入浅出地讲解如何利用脚本语言来构建交互式的动态网页。动态网页设计是互联网技术的重要组成部分,它使得网站能够...

    ASP动态网页设计教程.ppt

    ASP动态网页设计教程.ppt是关于使用Active Server Pages (ASP)技术进行动态网页开发的教程。以下是基于提供的部分内容,对ASP设计基础、HTML语言、JavaScript和VBScript脚本语言、ASP内置对象、ASP组件、数据库存取...

    Http页面缓存机制

    如果您没有一个整体缓存策略设计,那么您的缓存策略不仅会导致低劣的性能,还会引发一些功能缺陷。 浏览器缓存机制是 Web 2.0 应用程序中性能改善的关键要素之一。通过使用适当的缓存设置,可以显著地改善用户体验...

    动态网页设计实例,网站开发

    动态网页设计时,需要考虑元标签的使用、URL结构的优化、页面加载速度等因素。 10. **性能优化**:通过缓存技术、减少HTTP请求、压缩资源等方式提高网站性能,提供更快的加载速度和更好的用户体验。 以上是动态...

    ASPNET动态网页设计案例教程(C井版)

    《ASP.NET动态网页设计案例教程(C井版)》是一本深入浅出地介绍ASP.NET技术的教程,由冯涛编著。ASP.NET是微软公司推出的一种用于构建动态网站、Web应用和服务的技术,它基于.NET Framework,提供了丰富的功能和高效...

    _MySQL在PHP动态网页设计中的应用.pdf

    在 PHP 动态网页设计中,数据库设计是非常重要的,因为它直接影响着整个网站的性能和可扩展性。 在 MySQL 中,数据表是存储数据的基本单位。数据表由若干个字段组成,每个字段都有其特定的数据类型。在 PHP 动态...

    jsp动态网页设计指导书

    【JSP动态网页设计指导书】是一本针对JSP(JavaServer Pages)技术的实践教程,旨在帮助读者理解和掌握如何创建动态网页。JSP是一种基于Java的服务器端脚本语言,用于生成动态Web内容。本指导书通过一系列的实验和实...

    ASP .NET动态网页设计案例教程(Visual Basic .NET版)(江红).rar

    在本教程中,我们将探讨ASP .NET动态网页设计的基础知识,结合Visual Basic .NET编程语言,深入理解如何创建交互式、高性能的Web应用。 一、ASP.NET简介 ASP.NET是.NET Framework的一部分,它允许开发人员使用多种...

    php文件页面缓存类.zip

    在PHP编程中,缓存是一种...通过合理设计和使用这样的缓存类,开发者可以有效地优化网站的响应速度,降低服务器压力,提升用户体验。在处理动态内容、数据库查询结果等场景时,文件缓存是一种简单而实用的解决方案。

    [PHP动态网页设计与制作案例教程].房爱莲.扫描版

    根据提供的标题和描述“[PHP动态网页设计与制作案例教程].房爱莲.扫描版”,我们可以推断出这本书主要介绍了如何使用PHP语言进行动态网页的设计与制作。下面将围绕这一主题,详细介绍相关的知识点。 ### 一、PHP...

    ASP网页设计页面设计

    在ASP网页设计中,页面设计是至关重要的一个环节,它关乎到网站的用户体验、视觉效果以及信息传达效率。本资源集合专注于网页设计,包括网页制作的基础知识以及Dreamweaver(DW)的使用技巧。 在ASP网页设计中,...

    C# 系统缓存全解析

    - 页面局部缓存:只缓存页面的特定部分,减少整体内存占用。 - 应用程序缓存:利用System.Web.Caching命名空间提供的API进行缓存操作,可以设置缓存依赖,当依赖的资源改变时,自动更新缓存。 - 文件和数据库缓存...

    asp.net缓存 缓存

    2. 计算成本高:如果处理某个请求需要进行复杂的计算,将结果缓存可避免重复计算。 3. 减轻数据库压力:大量并发请求可能导致数据库性能瓶颈,缓存可以帮助分担这部分压力。 然而,缓存并非总是万能的,它也有一些...

    PHP 缓存 PHP 缓存

    2. **页面缓存:**页面缓存技术可以将整个网页或其部分静态化,从而减少每次请求时的动态生成过程,显著提升页面加载速度。 3. **浏览器缓存:**浏览器缓存主要用于存储用户经常访问的网页资源,如图片、样式表和...

    基于OSCache的页面缓存(收藏)

    页面缓存是指将频繁访问的网页内容存储在内存中,当用户请求这些页面时,不再需要重新生成或者从数据库查询数据,而是直接从缓存中读取,从而提高了响应速度。OSCache提供了一套完整的解决方案,包括缓存的创建、...

    JavaScript动态网页设计.rar

    在"JavaScript动态网页设计"这个主题中,我们将深入探讨JavaScript的核心概念、语法特性以及如何利用它来创建引人入胜的动态网页。 1. **JavaScript基础**:JavaScript是一种解释型、基于原型的对象导向语言,其...

Global site tag (gtag.js) - Google Analytics