以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  网页缓存问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=177507)

--  作者:ycs5801
--  发布时间:2022/5/25 13:00:00
--  网页缓存问题

使用缓存

一些网页文件,例如css、js、图片文件,很少会频繁更新,为提高效率,可以使用缓存:在一定时间内将文件缓存在客户端,这样客户端再次使用这些文件时,可直接使用缓存文件,无需再次访问服务器下载,以提高效率。

HttpRequest时间有个CatcheTime属性,用于设置缓存时间,单位为秒。

示例

例如希望除html和htm之外的文件,全部在客户端缓存一个小时:

Dim fl As String = "d:\\web\\" & e.path
If
filesys.FileExists(fl)
    Dim idx As Integer = fl.LastIndexOf(".")
    Dim ext As String  = fl.SubString(idx)
    Select Case ext
        Case ".jpg",".gif",".png",".bmp",".wmf",".js",".css" ,".zip",".rar"
           
e.CacheTime = 3600 \'缓存文件一个小时
            e.WriteFile(fl)
            Return
        Case ".html",".htm"
            e.WriteFile(fl)
            Return
    End
Select
End
If

提示:

1、这只是一个示例,实际上静态的网页也应该缓存的。

2、在缓存期内刷新页面(例如在地址栏再次按回车或单击刷新按钮),依然会重新访问服务器下载文件。

 

 

这句静态网页也应该缓存,这个有没有相关示例,应该怎么写这部分代码?


--  作者:有点蓝
--  发布时间:2022/5/25 13:43:00
--  
Dim fl As String = "d:\\web\\" & e.path
If
 filesys.FileExists(fl)
    Dim idx As Integer = fl.LastIndexOf(".")
    Dim ext As String  = fl.SubString(idx)
    Select Case ext
        Case ".jpg",".gif",".png",".bmp",".wmf",".js",".css" ,".zip",".rar
",".html",".htm"
            
e.CacheTime = 3600 \'缓存文件一个小时
            e.WriteFile(fl)
            Return

    End 
Select
End
 If
--  作者:ycs5801
--  发布时间:2022/5/25 14:09:00
--  

这样是不是就可以缓解多人同时访问网站,造成多并发的服务器不稳定。


--  作者:有点蓝
--  发布时间:2022/5/25 14:32:00
--  
对于静态的网页和文件有提升。

如果多并发,也可以考虑使用nginx,然后开启多个服务端项目,做负载平衡了

--  作者:ycs5801
--  发布时间:2022/5/25 14:50:00
--  
以下是引用有点蓝在2022/5/25 14:32:00的发言:
对于静态的网页和文件有提升。

如果多并发,也可以考虑使用nginx,然后开启多个服务端项目,做负载平衡了

这个nginx怎么配置呢?有没有实例?开启多个服务端项目什么意思呢?


--  作者:有点蓝
--  发布时间:2022/5/25 14:55:00
--  
nginx网上搜索了,大把教程的。

开启多个服务端项目就是比如发布的publish目录,复制多份,如:publish1、publish2。然后publish、publish1、publish2里的程序全部打开运行,以不同的端口启动服务

--  作者:ycs5801
--  发布时间:2022/5/25 15:26:00
--  
nginx基本都是实现动静分离,而weui生成的网页都是动态的html,如果使用nginx,是什么思路能把weui的动态生成网页转为静态的?
--  作者:有点蓝
--  发布时间:2022/5/25 15:32:00
--  
动静分离只是其中一种用法。多并发的话需要的是负载均衡。

如果页面内容是固定的,也可以使用wb.Save("d:\\web\\tst.html")保存为静态html文件使用
--  作者:ycs5801
--  发布时间:2022/5/25 15:36:00
--  
页面中哪些内容属于不固定的?
--  作者:有点蓝
--  发布时间:2022/5/25 15:46:00
--  
比如表格等通过后台数据生成的页面