存档

文章标签 ‘ASP’

新写的xmlClass,有些简陋,不过常用的功能都可以直接调用了。

<%
‘==============================================================
‘ xmlClass v1.10.0617 by CatSeven
‘==============================================================
‘ 文件:xmlClass.asp
‘ 功能:常用的XML处理
‘ 作者:苗启源(http://www.miaoqiyuan.cn)
‘==============================================================
class xmlClass
Dim xmlobj

Public Sub Class_Initialize
set xmlobj = Server.CreateObject("Microsoft.XMLDOM")
End Sub

Public Sub Class_Terminate
[...]

六 29th, 2010 | Filed under ASP, Products(作品)
标签: , , ,

ASP也能处理JSON数据?呵呵,刚才在Pjblog论坛上看到一个兄弟写的文章,没有测试,不过理论上一定是可以的~ 太晚了,不测试了。
以前处理JSON太麻烦了,输出还好说,循环一下就可以了,解析真的很头疼。所以遇到 这种问题API问题,一般都是XML处理,不太喜欢,很麻烦。

<%
Dim sc4Json
Sub InitScriptControl
Set sc4Json = Server.CreateObject("MSScriptControl.ScriptControl")
sc4Json.Language = "JavaScript"
sc4Json.AddCode "var itemTemp=null;function getJSArray(arr, index){itemTemp=arr[index];}"
End Sub

Function getJSONObject(strJSON)
sc4Json.AddCode "var jsonObject = " & strJSON
Set getJSONObject = sc4Json.CodeObject.jsonObject
End Function

Sub getJSArrayItem(objDest,objJSArray,index)
[...]

五 23rd, 2010 | Filed under ASP
标签: , ,

JS有Base64.js,PHP内建Base64支持,ASP处理Base64数据就没有那么幸运了,既没有Base64.asp,也没有内建的函数,这可怎么办?
ASP一般用到Base64的时候,都是处理二进制文件。简单的文本,就没有必要编码咯。ASP处理二进制又是一个弱项,有没有好的方法呢?xml中的bin.base64也许可以拿来用用。
[asp]< %
'调用xml的编码,用于参照
function Base64Encode(strData)
dim objAds,objXd
set objAds=createobject("adodb.stream")
objAds.Type=2
objAds.charset="unicode"
objAds.mode=3
call objAds.open()
objAds.writeText strData
objAds.Position=0
objAds.Type=1
objAds.Position=2
[...]

五 22nd, 2010 | Filed under ASP, Share(分享)

     最近有个工作,知道了域名,把ip导出来,大约800多条记录,一个一个查麻烦了。有没有其他方法能让asp通过域名查IP呢?
在网上搜索了一下,asp通过域名查ip需要安装一个TCPIP.DNS的组件。我下载了一个测试了一下,效率并不是很高。
一般查询域名的ip的方法是ping一下,得到一个ip。我们先用VBScript测试。

Function strCut(strContent,StartStr,EndStr,CutType)
Dim strHtml,S1,S2
strHtml = strContent
On Error Resume Next
Select Case CutType
Case 1
S1 = InStr(strHtml,StartStr)
[...]

四 30th, 2010 | Filed under ASP, Products(作品), VBscript
标签: , ,

当PHP.ini设置register_globals = On是,通过GET提交的数据可以直接使用表单名调用GET提交的数据。asp就不可以,我想到了asp的execute,也谢了一个脚本,还能过滤SQL注入字符串

<%
Dim myRegExp

set myRegExp=New RegExp
myRegExp.Pattern = "[^a-z0-9_]"
myRegExp.Global=True

for each Req in Request.Querystring
ReqV=Request.Querystring(Req)
if trim(ReqV)&lt;&gt;"" then
ReqV=replace(ReqV,"""","""""")
Req=myRegExp.Replace(Req,"")
Execute(Req&"="""&ReqV&"""")
end if
next

response.write a
%>

调用很简单。比如GET提交/get_Test.asp?a=111&b=222
则直接可以使用Response.write a,输出结果为111。简单吧~
再次感谢小秦(Q48080163)提出的bug

三 31st, 2010 | Filed under ASP, Share(分享), Thinks(想法)

本文只提供思路,程序代码在此就不方便发布了~
第一:每个程序代码都不样
第二:不能随便公布客户的代码~呵呵
如有类似需求,可联系QQ:1301425789
可以看到现在首页的执行时间已经是1.8秒以上了,如果访问量太大,有可能就会导致耗资源,加入缓存是最好的解决方法。我设置的数据库表如下:

Cache_id

Cache_key

Cache_Content

Cache_LastCreate

自动编号

缓存关键字

缓存内容

最后生成日期

 
设计缓存的时候,主要需要考虑以下两点:
 

1)     不经常改动部分缓存数据同步
保持缓存同步有两种方法:设置缓存刷新频率、实时更新
设置缓存刷新频率

<%
     缓存关键字:http://www.aaa.com/cp_view.asp?ID=68727
     更 新 频率:1天
     到 期 日期:最后生成日期+更 新 频率
    Sql:select Cache_Content from CacheTable where Cache_key=缓存关键字 and Cache_LaseCreate<到期日期
     没有找到记录:{
         将页面数据保存到数据库
select * from CacheTable where Cache_key=缓存关键字
没有记录{插入记录}有记录{更新生成日期,并保存记录}
     }找到记录:{
         直接输出
     }
%>
 
实时更新
     这种有点麻烦,但是是一个比较好的方案。唯一的缺点是保存的时候需要多次操作数据库。以 市场页为例:
给市场数据库添加一个最后更新日期
数据添加页面:凡是该分类下的所有页面更新,均更新最后更新日期。
最终显示页面:多表查询,如果当前市场最后更新日期<缓存日期,并且有缓存则直接输出缓存,否则创建缓存并输出。

2)     (经常改动不废)非静态的部分
这个比较简单,主要是会员登录,ASP脚本判断状态,输出JS更改页面的动态部分

三 29th, 2010 | Filed under Share(分享), Thinks(想法)
标签: , ,