仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4612|回复: 20
打印 上一主题 下一主题

[学习教程] ASP编程:使用xmlhttp和adodb.stream加缓存手艺下...

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:24:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
由于ASP提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。ado|stream|web|xml|缓存|下载   研讨了几天Adodb.stream和XMLHTTP的使用,
找了很多很风趣的教程,
上面的代码是将一个近程的页面,图片地址保留到当地的实例。
将代码保留为一个.ASP的文件,
将它放到IIS的一个目次下,在它的下级见一个cache目次,
下载后的文件将保留到cache目次下

fso.Asp?path=http://www.im286.com/images/im286/logo.gif
你就能够将http://www.im286.com/images/im286/logo.gif文件保留上去。
学小偷的伴侣也能够看看。。

<%
'----------近程获得内容,并将内容存在当地电脑上,包含任何文件!----------
'---------------使用xmlhttp和adodb.stream-----------------
'OnErrorResumeNext
'-------------------------------界说输入格局-----------------------------
path=request("path")
ifpath=""then
      path="http://www.百度.com/index.html"
'这里界说的网址是百度,,注重必定要有文件后缀
endif

sPath=Path
ifleft(lcase(path),7)<>"http://"then
'-------------假如后面没有http就是当地文件,交给LocalFile处置------------
LocalFile(path)
else
'--------------------不然为近程文件,交给RemoteFile处置------------------
RemoteFile(Path)
endif
'Response.Writeerr.Description
'--------------处置函数-----------

subLocalFile(Path)
'-------------------假如为当地文件则复杂的跳转到该页面-------------------
'Response.RedirectPath
Response.write"产生毛病!"
EndSub

SubRemoteFile(sPath)
'-------------------------处置近程文件函数------------------------------
FileName=GetFileName(sPath)
'-------------GetFileName为把地址转换为及格的文件名进程-------------
FileName=Server.MapPath("/Cache/"&FileName)
SetobjFso=Server.CreateObject("Scripting.FileSystemObject")
'Response.WritefileName
ifobjFso.FileExists(FileName)Then
'--------------反省文件是不是是已会见过,如是,则复杂跳转------------
Response.Redirect"/cache/"&GetFileName(path)
Else
'----------------不然的话就先用GetBody函数读取----------------------
'Response.WritePath
t=GetBody(Path)
'-----------------用二进制办法写到阅读器上--------------------------
Response.BinaryWritet
Response.Flush
'-----------------输入缓冲------------------------------------------
SaveFilet,GetFileName(path)
'------------------将文件内容缓存到当地途径,以待下次会见-----------
Endif
SetobjFso=Nothing
EndSub

FunctionGetBody(url)
'-----------------------本函数为近程获得内容的函数---------------------
'onerrorresumenext
'Response.Writeurl
SetRetrieval=CreateObject("Microsoft.XMLHTTP")
'----------------------创立XMLHTTP对象-----------------------------
WithRetrieval
.Open"Get",url,False,"",""
'------------------用Get,异步的办法发送-----------------------
.Send
'GetBody=.ResponseText
GetBody=.ResponseBody
'------------------函数前往获得的内容--------------------------
EndWith
SetRetrieval=Nothing
'response.Writeerr.Description
EndFunction

FunctionGetFileName(str)
'-------------------------本函数为及格化的文件名函数-------------------
str=WordStr(lcase(str),"http://","")
str=WordStr(lcase(str),"//","/")
str=WordStr(str,"?","")
str=WordStr(str,"&","")
str=WordStr(str,"/","")
str=replace(str,vbcrlf,"")
GetFileName=str
EndFunction

subSaveFile(str,fName)
'-------------------------本函数为将流内容存盘的函数-------------------
'onerrorresumenext
SetobjStream=Server.CreateObject("ADODB.Stream")
'--------------创立ADODB.Stream对象,必需要ADO2.5以上版本---------
'objStream.Type=adTypeBinary
objStream.Type=1
'-------------以二进制形式翻开-------------------------------------
objStream.Open
objstream.writestr
'--------------------将字符串内容写入缓冲--------------------------
'response.Writefname
'途径注重
objstream.SaveToFile"d:/web/cache/"&fName,2
'objstream.SaveToFile"d:cache"&fName,adSaveCreateOverWrite
'--------------------将缓冲的内容写入文件--------------------------
'response.BinaryWriteobjstream.Read
objstream.Close()
setobjstream=nothing
'-----------------------封闭对象,释放资本-------------------------
'response.Writeerr.Description
Endsub

functionsaveimage(from,tofile)
dimgeturl,objStream,imgs
geturl=trim(from)
imgs=gethttppage(geturl)'获得图片的具休内容的进程
SetobjStream=Server.CreateObject("ADODB.Stream")'创立ADODB.Stream对象,必需要ADO2.5以上版本
objStream.Type=1'以二进制形式翻开
objStream.Open
objstream.writeimgs'将字符串内容写入缓冲
objstream.SaveToFileserver.mappath(tofile),2'-将缓冲的内容写入文件
objstream.Close()'封闭对象
setobjstream=nothing
endfunction
%>由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况;
若天明 该用户已被删除
沙发
发表于 2015-2-16 00:50:29 | 只看该作者
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
活着的死人 该用户已被删除
板凳
发表于 2015-2-26 17:35:11 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
飘飘悠悠 该用户已被删除
地板
发表于 2015-2-27 13:28:00 | 只看该作者
在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。
因胸联盟 该用户已被删除
5#
发表于 2015-3-4 11:28:47 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
只想知道 该用户已被删除
6#
发表于 2015-3-9 16:52:19 | 只看该作者
作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。
小妖女 该用户已被删除
7#
发表于 2015-3-17 00:09:11 | 只看该作者
Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
兰色精灵 该用户已被删除
8#
发表于 2015-3-23 08:12:33 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
灵魂腐蚀 该用户已被删除
9#
发表于 2015-3-24 04:10:36 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
简单生活 该用户已被删除
10#
 楼主| 发表于 2015-3-24 18:01:34 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
不帅 该用户已被删除
11#
发表于 2015-4-21 16:44:43 | 只看该作者
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
金色的骷髅 该用户已被删除
12#
发表于 2015-4-22 19:20:49 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
深爱那片海 该用户已被删除
13#
发表于 2015-4-23 05:08:09 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
第二个灵魂 该用户已被删除
14#
发表于 2015-5-1 09:10:34 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
分手快乐 该用户已被删除
15#
发表于 2015-5-12 14:32:52 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
小魔女 该用户已被删除
16#
发表于 2015-6-13 22:22:59 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
再见西城 该用户已被删除
17#
发表于 2015-6-23 21:28:40 | 只看该作者
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
精灵巫婆 该用户已被删除
18#
发表于 2015-7-10 21:00:36 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
admin 该用户已被删除
19#
发表于 2015-7-12 06:27:10 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
莫相离 该用户已被删除
20#
发表于 2015-7-14 02:36:58 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 00:17

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表