讨论新浪(或者csdn)生成shtml是如何实现的!!
讨论新浪(或者csdn)生成shtml是如何实现的!!
这种方式对服务器来说特别是数据库服务器来说小了很多。但是具体如何实现,想跟大家讨论一下!!多谢!!
问题点数:0、回复次数:18Top
1 楼hongyanyufei(鸿雁于飞)回复于 2004-12-04 18:12:18 得分 0
建议找风讯在线的网站程序来看看,听说风讯一直都是模仿新浪的Top
2 楼alexzhang00(三角猫)回复于 2004-12-04 18:22:51 得分 0
又讨论?Top
3 楼loveyourvv(vv)回复于 2004-12-04 18:25:10 得分 0
找了风讯在线但是没有找到有价值的东西!!alexzhang00(三角猫) 有没有好的建议??Top
4 楼zola2399(丁丁)回复于 2004-12-04 18:37:40 得分 0
我关注Top
5 楼zhgroup(王员外)回复于 2004-12-04 18:43:32 得分 0
个人觉得是用模板来实现的,或者在shtml中用<script src=xxx.asp></script>来实现,
其中xxx.asp是动态的部分,xxx.asp输入页面脚本Top
6 楼hflsj(红枫)回复于 2004-12-04 18:49:15 得分 0
新闻系统 用模板生成静态文件Top
7 楼xiaoyuehen(OH, NO~It's Unfair!)回复于 2004-12-04 18:55:05 得分 0
摘一部份我收集修改的代码给大家, 需要的兄弟自己看着更改吧, 其他无关的函数我就不贴了.
Rem #################################################################
Rem ## 路径检测
Function CheckFolder(strPath)
Dim Fso
Set Fso = CreateObject("Scripting.FileSystemObject")
CheckFolder = fso.FolderExists(strPath)
End Function
Rem #################################################################
Rem #################################################################
Rem ## 路径检测
Function CheckFile(strPath)
Dim Fso
Set Fso = CreateObject("Scripting.FileSystemObject")
CheckFile = fso.FileExists(strPath)
End Function
Rem #################################################################
Rem #################################################################
Rem ## 文件名有效性检测
Private Function CheckFileName(strFileName)
CheckFileName = False
If strFileName = "" Or IsNull(strFileName) Then Exit Function
If Instr(1, strFileName, "\", 1) Then Exit Function
If Instr(1, strFileName, "/", 1) Then Exit Function
If Instr(1, strFileName, ":", 1) Then Exit Function
If Instr(1, strFileName, "*", 1) Then Exit Function
If Instr(1, strFileName, "?", 1) Then Exit Function
If Instr(1, strFileName, """", 1) Then Exit Function
If Instr(1, strFileName, "<", 1) Then Exit Function
If Instr(1, strFileName, ">", 1) Then Exit Function
If Instr(1, strFileName, "|", 1) Then Exit Function
CheckFileName = True
End Function
Rem #################################################################
Rem #################################################################
Rem ## 远程获得内容
Private Function GetContent(strUrl)
GetContent = ""
Dim oXhttp, strContent
Set oXhttp = Server.CreateObject("Microsoft.XMLHTTP")
On Error Resume Next
With oXhttp
.Open "GET", strUrl, False, "", ""
.Send
strContent = .Responsebody
strContent = BytesToBstr(strContent)
End With
Set oXhttp = Nothing
If Err.Number <> 0 Then
oSys.addmessage Err.Description
Err.Clear
Exit Function
End If
GetContent = strContent
End Function
Rem #################################################################
Rem #################################################################
Rem ## 编码转换 2进制 => 字符串
Private Function BytesToBstr(vIn)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode = 3
objstream.Open
objstream.Write vIn
objstream.Position = 0
objstream.Type = 2
objstream.Charset = "GB2312"
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
Rem #################################################################
Rem #################################################################
Rem ## 编码转换 2进制 => 字符串
Private Function sDoCreateFile(strPath, strFileName, ByRef strContent)
sDoCreateFile = False
Rem ## 检测路径及文件名有效性
If Not(CheckFolder(strPath)) Then Exit Function
If Not(CheckFileName(strFileName)) Then Exit Function
If Right(strPath, 1) <> "\" Then strPath = strPath & "\"
Dim strFullFileName
strFullFileName = strPath & strFileName
Rem ## 生成文件
Dim objStream
On Error Resume Next
Set objStream = Server.CreateObject("ADODB.Stream")
If Err.Number=-2147221005 Then
oSys.addmessage "主机不支持ADODB.Stream"
Err.Clear
Exit Function
End If
On Error Resume Next
With objStream
.Type = 2
.Open
.Charset = "GB2312"
.Position = objStream.Size
.WriteText = strContent
.SaveToFile strFullFileName, 2
.Close
End With
If Err.Number <> 0 Then
oSys.addmessage strFullFileName
oSys.addmessage Err.Description
Err.Clear
Exit Function
Else
oSys.addmessage strFullFileName
End If
Set objStream = Nothing
sDoCreateFile = True
End Function
Rem #################################################################
Rem #################################################################
Rem ## 逝去时间
Private Function processTime(intFlag)
Dim IntProcessSecond, Result, dtaEnd
dtaEnd = Timer()
IntProcessSecond = FormatNumber((dtaEnd - dtaStart) * 1000, 3, True)
Select Case intFlag
Case 0
Result = "花费时间: " & IntProcessSecond & "毫秒"
Case 1
Case 2
Case 3
End Select
processTime = Result
End Function
Rem #################################################################
Top
8 楼xiaoyuehen(OH, NO~It's Unfair!)回复于 2004-12-04 18:59:23 得分 0
如果你对这方面有兴趣, 我推荐你去这个论坛看看
http://bbs.tsyschina.com/default.asp
该网站有个开源的项目tsys, 专门讨论静态页面生成管理..软件本身构架得也很不错(个人觉得), 具有比较良好的代码风格.Top
9 楼qunluo(最爱白菜)回复于 2004-12-04 20:52:53 得分 0
网上太多这样的例子!!!
在说了,什么html还是shtml还是htm没什么差别嘛!
都是一样的原理!!FSO数据处理!Top
10 楼arcow(冲星)回复于 2004-12-04 21:00:03 得分 0
生成shtml和html有差别嘛?Top
11 楼loveyourvv(vv)回复于 2004-12-05 11:18:33 得分 0
谢谢各位的讨论!!!Top
12 楼Onlyfu(好久没碰过女人了)回复于 2004-12-06 21:13:11 得分 0
我也比较想知道这个东西,有没有人能提供一点资料或者例子什么的。先谢了!!Top
13 楼aner(名花虽有主,我来松松土!)回复于 2005-01-24 14:55:04 得分 0
新浪、搜狐里的shtml的“相关链接”的内容是怎样生成的???Top
14 楼lawyu(雨淋漓)回复于 2005-01-24 15:00:35 得分 0
应该就是模板生成的
:)Top
15 楼pizi611(皮子)回复于 2005-01-24 15:20:16 得分 0
我也想知道在apache的配置文件上面有需要什么改动Top
16 楼aner(名花虽有主,我来松松土!)回复于 2005-01-24 15:37:55 得分 0
请教:"lawyu(雨淋漓)"
是不是一但生成那么"相关链接"的内容就不能改了?Top
17 楼xuan2002627(浪子)回复于 2005-01-24 15:59:18 得分 0
个人认为就是一个新闻发布信息,Top
18 楼tigerhu76(虎虎)回复于 2005-01-24 16:24:54 得分 0
markTop




