asp与html的问题,大家帮忙解决!

找找乐儿 2009-08-13 11:09:37
我现在做了一个小站,里面有一个页面是文章页面,首先看到的是文章题目和摘要的列表,都是从数据库里取出的,如果想看对应的文章的详细内容,点击旁边的“查看详情”,然后传递参数给另一个asp的页面,从数据库调出相应的内容。可是在推广网站的时候发现,一般这样的文章查看的都应该是生成的静态页面,这样对于搜索引擎的查找有帮助,可是要怎么样才能生成我这样情况的html文件呢?也就是说,当被人点击“查看详情”的时候,他看到的是一个html的相应文章的静态文件。
具体的页面地址是http://www.quertao.cn/zhinan.asp 我还有一个后台的文章写入数据库的界面。
现在我的感觉是逻辑不清楚,不知道应该怎么捋顺。我是不是在发表文章的时候不单单要写入数据库,还要生成相应的html文件,可是摘要页面里的都是从数据库里得到的数据,要怎么样才能点击“查看详情”就能自动链接到相对应的文章html文件?
说的可能有些逻辑上的不清楚,可是如果大家有做过文章发布的话,肯定能明白我的意思!谢谢大家了
...全文
67 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
number123456 2009-08-13
你可以将一篇文章生成两个HTML
id.html和id_1.html
生成HTML的简单方法就是用XMLHTTP方法读出你上边提到的两个页面,然后用FSO创建两个指定的HTML就OK
提供代码公供参考

'页面抓取
Function getHTTPPage(url)
On Error Resume Next
dim Http
set Http=server.createobject("MSXML2.ServerXMLHTTP")
Http.open "GET",url,false,"",""
Http.send()
if Http.readystate<>4 then
getHTTPPage(url)
Exit function
else
If Http.status <> 200 then
getHTTPPage = ""
Exit Function
End If
End If
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
set http=nothing
If err.number<>0 then err.Clear
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
'End

Sub HTML_patterns(show,fname,folder)
'show页在地址,fname文件名,folder文件路径
On Error Resume Next
filepath = folder&fname
'建产文件夹
set myfso = CreateObject("Scripting.FileSystemObject")
If myfso.FolderExists(Server.MapPath(folder)) = False Then
myfso.CreateFolder Server.MapPath(folder)
End If
set myfso=nothing
If show <> "" then
content = getHTTPPage(show)
Else
Response.write "<a href=""#"" onclick=""javascript:location.reload();"">生成静态页失败。请点击此处重新生成。</a>"
Response.end()
Exit Sub
End If
If Replace(content," ","") <> "" then
'Response.write "正在生成页页,请不要刷新......"
Else
Response.write "<a href=""#"" onclick=""javascript:location.reload();"">生成静态页失败。请点击此处重新生成。</a>"
Response.end()
End If
'Response.write content
'生成HTML页面
Set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.CreateFolder(Server.MapPath(folder))
Set fout = fso.CreateTextFile(Server.MapPath(filepath),true,false)
fout.WriteLine CreateCode(content)
fout.close
Files = true
End Sub
回复
lingfeng179 2009-08-13
你可以让asp页面生成 静态页面 我前几天刚做过的
我的博客上有源代码http://blog.csdn.net/lingfeng179
回复
找找乐儿 2009-08-13
[Quote=引用 1 楼 sy_binbin 的回复:]
在后台添加修改文章的时候都要生成下HTML文件

在生成文件后把文件名写进数据库里就行
[/Quote]
哦,一句话惊醒梦中人!
那有什么好的生成html文件的好方法吗?
回复
sy_binbin 2009-08-13
在后台添加修改文章的时候都要生成下HTML文件

在生成文件后把文件名写进数据库里就行
回复
sy_binbin 2009-08-13
[Quote=引用 2 楼 xihaheihe 的回复:]
引用 1 楼 sy_binbin 的回复:
在后台添加修改文章的时候都要生成下HTML文件

在生成文件后把文件名写进数据库里就行

哦,一句话惊醒梦中人!
那有什么好的生成html文件的好方法吗?
[/Quote]
主要就是FSO
利用模板也可以,利用XMLHTTP也可以

模板的方法你可以下一些成熟的CMS研究研究
XMLHTTP的方法4楼的朋友已经给出来了
回复
cashfly 2009-08-13
楼上的方法不错,学习了。
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告