博文

利用ASP实现三个强大功能(转)(2006-06-12 14:37:00)

摘要:作者: 冲虚龙

  1、为Web站点添加拼写检查功能

  许多开发者都提出“如何对用户输入的内容进行拼写检查”的问题,这篇文章正好提供了一个有用的方法,讨论如何使用XDE拼写检查组件,它既可以当作拼写检查器,同时也可以做完一个字典。关于这个组件的一个好消息是:它能够在服务器端使用,或者做为一个Java Applet。但是有一点,这些方便之处不是免费的,它要花费大约100美元。然而,该组件提供了一个30天免费使用评估版本,所以在真正决定购买前,你可以仔细进行测试,认真考虑是否满足需要。

  首先,访问http://mirrordns.com/download/站点,输入一些信息(名字、电子邮件,等等),下载并安装这个组件。下一步,从可供下载的XDE众多组件中选择 “Quick Spell Check Full Install”项目进行下载。下载完毕后,进行安装。在安装程序结束前,出现一个注册登记菜单,这时,简单地选择默认选择“Evaluation Period”。

  注意,现在的程序还是BETA版本。如果你不希望发生潜在的错误,我建议等第一个正式版本出来后再下载进行试验。我已经发现了现有版本的一些错误。你要记住:这是一个BETA版本,不要在正式站点上应用。

  接着,准备注册登记组件。现在决定一下你是否想要包含Word 97的字典和词典功能,如果需要,请先在Web服务器上安装Word 97或者Word 2000,然后参照http://mirrordns.com/spellchecker/server_installation.htm 的说明执行一套特殊的命令。如果不想使用整个Word 97的字典,就象注册其他组件一样接着进行:

  拷贝DLL文件SpellCheckServer.dll到Windows的System或者System32目录

  使用regsvr32注册组件:regsvr32 spellcheckserver.dll

  现在安装完组件,可以在ASP代码中使用了。为了创建使用拼写检查对象的示例,仅仅简单的编写下面的代码:

Set objSpellCheck = Server.CreateObject("......

阅读全文(1360) | 评论:0

使用ASP读出文本文件并显示(2006-06-12 14:32:00)

摘要:(注:textStream有关写的METHOD

     Write(STRING)

     WriteLine(STRING)

     WriteBlankLines(LINES)

     )

     这是一个完整的程序

     〈 html 〉

     〈 head 〉

     〈 http-equiv="Content-Type" content="text/html; charset=gb2312" 〉

     〈 title 〉〈 /title 〉

     〈 /head 〉

     〈 body 〉

     < % LANGUAGE = VBScript % >

     < %

     Const ForReading = 1, ForWriting = 2, ForAppending = 8

     Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0     

     Dim filename

     filename = "test.txt" ’缺省相对路径是c:winnt

     Set fs = CreateObject("Scripting.FileSystemObject")

     Set f = fs.GetFile(filename)

     Set readf = f.OpenAsTextStream(ForReading,TristateFalse)

     ’第一个参数可选。输入/输出模式,是下列三个常数之一:

     ’ ForReading=1只读、ForWriting=2 可读写或 ForAppending=3追加

     ’第二个参数也为可选。三个 Tristate 值之一,

     ’ 指出以何种格式打开文件。忽略此参......

阅读全文(1584) | 评论:0

在ASP中实现购物小车(2006-06-12 14:31:00)

摘要:为了讲解方便,突出重点,本文用数组实现要显示的商品信息。但在实际的系统开发中,这些商品信息的数据应该来自后台数据库。


在程序中,我们定义了一个sp数组并对其赋值,然后用一个循环实现其数据显示及对下一个程序的数据传递。程序部分代码如下:


<% i=1


do while (i<=5) %>


<tr > <td><%=sp(i)%></td>


<td><a href=“cart.asp?spid=<%=sp(i)%>”>订购</a></td> </tr>


<% i=i+1


loop %>


构建购物小车


为处理用户订购商品的操作,我们自定义了两个Session的属性,分别是“spid”(用来保存商品名称)和“num”(用来保存相应商品的订购数量)。当用户订购了一种商品后,我们分三种情况对Session进行处理:


●购物小车为空,即Session(“spid")=“",直接将spid与num加入Session;


●购物小车非空且当前订购的商品是购物小车中没有的,则处理方法同上;


●购物小车非空但当前订购的商品是购物小车中已有的,Session保持不变。


程序实现的要点是如何判别当前订购的商品在购物小车中是否存在,因此,首先要将Session变量的内容拆分并存入数组:


array1=split(Session(“spid”),“:”)


然后用循环语句判别array1中是否有元素与传递来的spid相同并将结果存入变量ifbuy:


for i=0 to ubound(array1)-1


if array1(i)= Request.QueryString(“spid”) then


ifbuy=true


exit for


end if


next


将新增的商品信息加入Session:


Ses......

阅读全文(1568) | 评论:0

微软建议的ASP性能优化28条守则(2006-06-12 14:30:00)

摘要:目录
技巧 1:将经常使用的数据缓存在 Web 服务器上
技巧 2:将经常使用的数据缓存在 Application 或 Session 对象中
技巧 3:将数据和 HTML 缓存在 Web 服务器的磁盘上
技巧 4:避免将非敏捷的组件缓存在 Application 或 Session 对象中
技巧 5:不要将数据库连接缓存在 Application 或 Session 对象中
技巧 6:合理地使用 Session 对象
技巧 7:将代码封装在 COM 对象中
技巧 8:迟一点获得资源,早一点释放资源
技巧 9:进程外执行过程以性能换取可靠性
技巧 10:使用显式选项
技巧 11:在子例程和函数中使用局部变量
技巧 12:将经常使用的数据复制到脚本变量中
技巧 13:避免重新确定数组的维数
技巧 14:使用响应缓冲
技巧 15:批处理内嵌脚本和 Response.Write 语句
技巧 16:如果页面需要很长时间才能完成,那么执行前使用 Response.IsClientConnected
技巧 17:使用 <OBJECT> 标记例示对象
技巧 18:对于 ADO 和其它组件使用 TypeLib 绑定
技巧 19:利用浏览器的验证功能
技巧 20:避免在循环语句中使用字符串串联
技巧 21:启用浏览器和代理缓存
技巧 22:尽可能使用 Server.Transfer 代替 Response.Redirect
技巧 23:在目录 URL 中使用后斜杠
技巧 24:避免使用服务器变量
技巧 25:升级到最新和最出色的
技巧 26:优化 Web 服务器
技巧 27:进行性能测试
技巧 28:阅读资源链接
引言
性能是一个特征。您必须预先设计性能,否则您以后就得重写应用程序。就是说,有哪些好的策略可使 Active Server Pages (ASP) 应用程序性能达到最佳?

本文介绍了优化 ASP 应用程序和 Visual Basic&reg; Scripting Edition (VBScript) ......

阅读全文(1883) | 评论:0

用ASP建造自己的聊天室(2006-06-12 14:26:00)

摘要:聊天室想必你一定去过吧,但想不想建立自己的聊天室呢?其实这一点都不难,Active Server Script提供了Application对象和Session对象,Application对象代表了一个Active Server应用程序,也就是一个Web网页,Session对象则表示一个用户,代表一个用户对这个页面的一次访问,通过Application对象可以让访问它的所有用户共享信息,并可以在Web服务器运行期间持久地保存数据,而Session对象也可以在用户的一次访问期间持久地保持数据,利用这两个对象,就可以十分方便地建造自己的Chat应用程序。
---- 一、Application对象:

---- 1.属性:Application对象没有内置的属性,但用户可以定义自己的属性:

---- Application(“属性名称”)=值,一旦分配了属性,它就会一直存在,直到Web服务器关闭服务,而且它能被所有用户读取,所以可以用它在用户之间发送谈话内容。

---- 2.方法:当两个用户同时对Application属性的值进行写入操作时,会出现一方的修改被另一方的操作直接覆盖掉的情况,为了避免这种现象,用户可以调用Lock方法进行锁定,这样只有当前用户才能够对Application的属性进行操作,用户完成操作后调用Unlock方法解锁,使得其他用户也可以修改Application的属性。

---- 3.事件:创建Active Server应用程序需要在Web服务器上存放应用程序的虚拟主目录下创建Global.asa文件,它含有Application对象和Session对象的事件处理例程,通常,Application_Onstart事件用来定义应用级的属性。

---- 二、创建一个Chat应用程序:程序运行时如下图所示(略)

---- 1.设置应用程序的变量:这里需建立两个应用程序级的变量,gchars数组用来存放用户的谈话内容,gcounter用做计数器,控制页面的显示行数,在这里我们让页面最多显示最近的10行谈话内容。当应用程序启动时这些变量必须进行初始化,所以它们的创建都要在Global.asa文件中的Application_onstart事件中:

......

阅读全文(1363) | 评论:0

asp防止同时登陆的问题(转)(2006-06-12 14:25:00)

摘要:实现这个功能可有两种方式:

1。application
用application对象:如果做的是大型社区,可能要为每个登陆id生成一个appliaction,这样做虽然程序上设计会简单些但登陆用户过多及其耗费服务器资源,这里决不提倡,因为appliaction对象在用户登陆时生成很容易, 但是要做到真正的随着用户退出系统完全释放,到目前还没看到更好的方法~

<%  
.....取用户名username.....  
if  Application(username)<>""  then  
     response.write  "该用户已经登录"  
     response.end  
end  if  
Application(username)=username  ''存入该用户的用户名
%>

在global文件中加上session  onend事件,下线时Application("isuserlogin")=false  
此外还要检测是否吊线,有专门的办法,是server对象里的某项  

(参: http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=815)

2。数据库+asp
做起来可能会复杂些,但是适合有大量登陆用户的系统。

首先为用户建立数据库-用access新建一个onlyTOL8.mdb

数据表1: users 存放用户注册资料
下设数据表:uID(自动编号) userName(字符型) userPass(字符型)

数据表2: onlyLogin 存放用户临时登陆信息
下设数据表: OLn......

阅读全文(1293) | 评论:0

SETPART.C(转载)(2006-06-12 09:12:00)

摘要:/* ------------------------------------------------------ */
/* FUNCTION  set_partition :                              */
/*    Given an integer n, this function will lists all    */
/* possible partitions of {1,2,3,...,n}.                  */
/*                                                        */
/* Copyright Ching-Kuang Shene               July/24/1989 */
/* ---......

阅读全文(1899) | 评论:0

PERMUT_R.C(转载)(2006-06-12 09:11:00)

摘要:/* ------------------------------------------------------ */
/* PROGRAM permutation by rotation :                      */
/*    Give an integer n, this program generates all       */
/* possible permutations by using rotation operations.    */
/*                                                        */
/* Copyright Ching-Kuang Shene               July/08/1989 */
/* ------------------------------------------------------ */ #include  <stdio.h>
#include&n......

阅读全文(1776) | 评论:0

PERMU_LR.C(转载)(2006-06-12 09:10:00)

摘要:#include <stdio.h>
#include <stdlib.h> #define  LOOP         1
#define  SWAP(a,b)    { int t; t = a; a = b; b = t; }
#define  REVERSE(a,b) { int i, j;                            \
                        for (i=(a), j=(b); i < j; i++, j--)  \
                             SWAP(perm[i], perm[j]);         \
                      }
#define  DISPLAY(n......

阅读全文(1954) | 评论:0

LEXICAL.C(转载)(2006-06-12 09:10:00)

摘要:/* ------------------------------------------------------ */
/* PROGRAM All Possible Subset by Lexical Order :         */
/*    This program generates all subsets by lexical order.*/
/*                                                        */
/* Copyright Ching-Kuang Shene               July/05/1989 */
/* ------------------------------------------------------ */ #include  <stdio.h>
#include  <stdlib.h> #define   MAXSIZE      20
#define   LOOP          1 void ......

阅读全文(1512) | 评论:0