当前位置: 首页 > 图文教程 > 网络编程 > ASP > 创建弹出式“每日提示”窗口

ASP
对连串英文自动换行的解决方法 IE5.5
怎样写你自己的EMAIL组件(原理)
ASP中有关timeout超时的体会
用ASP实现从SQL Server导出数据到Access
ASP向NT域中加一个用户
ASP乱码的解决方法
关于 aspsmartupload 注册问题
利用XML不离开页面刷新数据
IIS 处理 SEARCH 请求漏洞
不用组件实现上载功能(1)
不用组件实现上载功能(2)
在网页中实现OICQ里的头像选择的下拉框
仅用xsl和asp实现分页功能
如何使用context()方法将数据置入表格(XML)
利用ASP从远程服务器上接收XML数据
将数据库里面的内容生成EXCEL
怎样在ASP里面创建统计图表
加密你的Access数据库
利用global.asp定时执行ASP
加密QueryString数据

ASP 中的 创建弹出式“每日提示”窗口


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 33 ::
收藏到网摘: n/a

  * 本例程将会用到Application对象、数据库、JavaScript、以及文件操作。

首先,我们列一下本例程将涉及的内容:


1) 我们将创建一个用于显示“每日提示”的弹出式窗口;
2) 提示将在每天呈现不同的内容;
3) 提示内容保存于数据库中,接受由网上传来的索取指令;
4) 提示内容更新便利,也可以随时添加新的内容;
5) 提供一种手段以列出所有提示。

下面,我们将涉及细节问题。我们只讨论其中的某些内容,其它的信息将由实际产生的文档提供(什么意思?蜘蛛精也不太明白,待我们往后瞧瞧再说)。

我需要知道当前显示的是哪一条提示。为了传送当前提示的编号,我们要用到Application。同时,为了在更新提示时知道这些,我们要将已显示的提示编号存档,保存在磁盘中。这样做是为了防止服务器重启动、断电、(反革命份子蓄意破坏、非法组织黑红色网站等)事故中相关数据丢失。我们就用TIPSTORE.DAT作数据存档文件。它包含两行,一行是提示的编号,一行是数据。

因为这些值一直存放在Application中,当运行“每日提示”时,我们就可将它们从TIPSTORE.DAT中取出。作这项工作最佳的方式是利用GLOBAL.ASA,在Application_OnStart中。GLOBAL.ASA文件可以取出这些值。(知道下面这句话怎么译的人请举手!)This is done, courtesy of the FileSystemObject and its support through the TextStreamObject methods:(好,手放下!既然你们都知道了,那我也就不解释了)


PhyPth = Server.MapPath("/tipstore.dat")
set FilSys = CreateObject("Scripting.FileSystemObject")
set TipFil = FilSys.OpenTextFile(PhyPth, 1)
Application("CurTip") = TipFil.ReadLine
Application("SymDt") = CDate(TipFil.ReadLine)
TipFil.Close
set TipFil = nothing
set FilSys = nothing

我们选择Server.MapPath指明文件的物理位址。这可使这段用于处理DAT文件的代码无须经过修改即可用于多个站点。FilSys创建为FileSystemObject,TipFil创建为TextStreamObject。我们接下来就可从这个文件里读数据,完成后再关闭它。

接下来,我们来看看这个更新提示的页面。这也是我们向用户提供提示选择权的页面。我也许会建议你把它放到你的主页上,而其实它可以放到任何地方。让我们来看一看这个名为HOME.ASP的文件的内容:

<%

'Tip of the day processing
if Application("SymDt") < Date then
    Application.Lock
    CurTip = Application("CurTip") + 1
    SymDt = date
    Application("CurTip") = CurTip
    Application("SymDt") = SymDt
    Application.Unlock

    PhyPth = Server.MapPath("/tipstore.dat")
    set FilSys = CreateObject("Scripting.FileSystemObject")
    set TipFil = FilSys.CreateTextFile(PhyPth, true)
    TipFil.WriteLine(CurTip)
    TipFil.WriteLine(CStr(SymDt))
    TipFil.Close
    set TipFil = nothing
    set FilSys = nothing
end if

%> ...
直到最后,我们检查当前的提示是否比上一个提示更新。如果第一个用户访问这个导致新数据的页面,我们就很容易来处理这种变化。(明白乎?反正蜘蛛精是搞蒙了。我发觉翻译技术资料最头痛的并不是技术内容,而是如何去领会作者的意思。鄙人生性愚钝,才疏学浅,直觉亦不甚敏锐,只有把这些内容留给网友了。原文请见英文版)。锁住Application,我们就不会取到重复的变化。选择下一个提示的编号,把当前的编号存入数据中以备明天使用。由于上述的诸多原因,将处理的结果存入文档是必要的。(除非你是玩MUD,或与网络情人进行生死恋。可以“24 hours a day, 7 days a week”地开着机器)

为了产生弹出式浏览器窗口,我们得借助JavaScript来完成。下面的函数可以完成这个功能。

function displayPopup(url, height, width) {

properties = "toolbar=0,location=0,scrollbars=1,height=" + = height;
properties = properties + ",width=" + width;
properties = properties + ",left=0,top=0";
popupHandle = open(url, "tipwindow", properties);

}
就像你看到的那样,我们可以在这个弹出窗口中显示任何一个网址。我们也可控制窗口的高度和宽度。对于不同的浏览器,代码产生的结果是不一样的,所以需要在IE和Netscape中作测试。我已预设