📄 自动化网页.txt
字号:
请支持我们站点以网养网,点击我们的广告,谢谢大家!
蜘蛛过来,用FileSystemObject自动化Web内容的发布
--------------------------------------------------------------------------------
【天啦】 于 00-4-26 21:15:07 加贴在 Joy ASP ↑:
ASP脚本语言中的FileSystemObject是一个较少被注意到却又非常有用的对象。该对象允许Web应用程序访问计算机的文件系统,提供用于打开、创建、读取、写入文件的方法。
Web应用程序可以基于许多不同的理由产生访问文件系统的需求。而本文讨论的是用它来分离Web内容与它的布局。这种类型的内容管理具有以下优点:
不需要为加入新页面改动主题模板。
可以快速地增加新内容。
通常可以在一个页面内修改导航链接、布局和图片,而不是在多个页面中。这使得维护工作更为容易。
也许你会说“为什么不直接使用服务器端的包含文件?”回答是,使用包含文件确实可以实现类似目标。我们可以将那些公用的HTML或脚本代码保存为独立的文件,然后用包含命令引用它们。这种方法特别适合于将网站上经常改动的、公用的页面元素加入到每个页面中,但它要求存在用来包含的物理页面。我们希望达到的效果是一个更为“高级的”模板,一个按照浏览者要求改变内容的独立页面。
下图阐述了它的工作原理:
【图 ASPFileSystemObject.gif】
这里的Index.asp就是一个模板,它提供了所有内容的公用元素,同时也包含用来显示其它内容页面的代码。指向Index.asp的链接可以用一个查询字符串来标识要求显示的内容页面。
模板页面也可以看成是一个容器,它根据用户的请求调用其它页面。下面是模板页面的一个示例:
< % @ Language="VBScript" %>
< html>
< body>
< table width="650" cellpadding="0" cellspacing=0 border="0">
< tr>
< !-- 导航条 -->
< td bgcolor="#c0c0c0" width="110" valign="top" nowrap>
< a href="/index.asp">
主页
< /a>< br>
< a href="/index.asp?target=/content/page1.txt">
页面1
< /a>< br>
< a href="/index.asp?target=/content/page2.txt">
页面2
< /a>< br>
< a href="/index.asp?target=/content/page3.txt">
页面3
< /a>< br>
< /td>
< td align="left" valign="top">
< br>
< %
page = Request.QueryString("target")
If page = "" Then %>
< p>
这是缺省页面内容。这些内容嵌入于Index.asp,但也可以作为普通的内容页面提供。
< /p>
< %
Else
GetThePage(page)
End If
%>
< /td>
< /tr>
< /table>
< /body>
< /html>
< %
Function GetThePage(page)
Dim file, textStream
' 获得内容文件路径
page = Server.Mappath(page)
' 创建FileSystemObject对象,打开文件
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile(page, 1)
' 从文件读取文本
' 然后写入HTML流
Do While file.AtEndOfStream <> True
textStream = file.ReadLine
Response.Write textStream
Loop
' 关闭文件并释放资源
file.Close()
Set file = Nothing
End Function
%>
GetThePage()是完成内容页面显示的关键函数。对该函数的调用是有条件的:如果QueryString("target")为空,则Index.asp显示的是缺省的内容页面。
下面我们来看看GetThePage()函数的工作过程。也许你会怀疑这个函数中代码Server.Mappath(page)的作用。请将这个语句注释掉然后再打开任意一个内容页面,可以发现CreateObject不能成功执行了。用page变量(它包含了文本文件路径的一部分)调用Mappath的作用是将虚拟路径或相对路径映射为对应的物理路径,从而使得我们可以在仅知道文件在Web服务器上的位置(而不知道完整的UNC路径)时访问文件。下面这一行:
Set file = fso.OpenTextFile( page, 1 )
是用转换后的page变量调用OpenTextFile方法,其中参数1表示只读。函数接下来按行读取文本文件内容。一般地讲,这种读取方法便于分析文本的内容。不过这里并没有利用这一点,而是立即将文本行输出到HTML流了。当然,我们也可以将页面缓冲然后一次性发送。
这种模板自动化具有以下几个明显的优点:
模板分离了内容与内容的表现。
维护更为容易,所有的链接均位于同一页面之中。
修改模板页面将立即影响所有由它所引用的内容页面的显示。
对于具有大量类似页面的Web站点来说,模板自动化简化了内容的管理。
当然,这种方法也存在不少缺点:HTML合法性检验将变得非常困难,运行链接分析器时很容易出现无限循环。模板自动化不太适合于已有的Web站点,因为内容必须保存为文本文件。
然而,我们相信在很多时候模板自动化的优点远远大于其缺点。只要在计划和测试时略加注意,模板自动化就有可能成为那些高容量Web站点的有效工具。
--------------------------------------------------------------------------------
贴子转发:
E-mail地址:
--------------------------------------------------------------------------------
相关主题:
蜘蛛过来,用FileSystemObject自动化Web内容的发布 - 【天啦】 00-4-26 21:15:07 [ID:228775 点击:13] (3942 Bytes) (0)
--------------------------------------------------------------------------------
回复:
版 面:Joy ASP ↑ *为必填项目 第一次发言请去注册>> 怎样使用UBBCode>> UBB Code Editor>> NEW!
姓 名:* 密码: * 密码遗忘请点这里>>
Email:
主 题:*
表 情:
内 容(最多16KB) 使用签名 设置签名>>
链接地址:
链接标题:
链接图片:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -