存档

2010年1月 的存档

这个函数我觉得还是比较实用的,用于69dns.com的一个新项目。代码有点熟悉?不过这个可是我原创的代码哦。
还有一个控制xml,控制form,控制css,以及加载的boot.js。
当然还有很多东西都不完善,等以后有空的时候,都整理一下。
实际上只是创建了一个stcms的json对象。为了能独立使用加入了if(typeof(stcms)==”undefined”)stcms={};,算是另类的命名空间吧。

/*
文件:ajax.js
挂载:stcms
独立:可独立使用
设计:猫七@69dns.com
*/

(function(){
if(typeof(stcms)==”undefined”)stcms={};
stcms.ajaxstatus=0;
stcms.ajax=function(url,str,method,callback){
if(stcms.ajaxstatus==1){
alert(“请等待上一个进程处理完。”);
return;
}
if(url.indexOf(“?”)!=-1)url+=”&sendTme=”+new Date();else url+=”?sendTme=”+new Date();
var xmlhttpRequest;
if(typeof(xmlhttpRequest!=”object”)){
   if(window.ActiveXObject){
   try{
   xmlhttpRequest = new ActiveXObject(“Microsoft.XMLHTTP”);
   }catch(e){
   xmlhttpRequest = false;
   }
}else if(window.XMLHttpRequest){
xmlhttpRequest = new XMLHttpRequest();
}
}
if(xmlhttpRequest){
stcms.ajaxstatus=1;
xmlhttpRequest.open(method,url,true);
if(method==”post”)xmlhttpRequest.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded”);
xmlhttpRequest.setRequestHeader(“charset”,”gb2312″);
xmlhttpRequest.onreadystatechange=function(){
if(xmlhttpRequest.readyState==4){
if(xmlhttpRequest.status==200){
  callback(xmlhttpRequest.responseText);
  stcms.ajaxstatus=0;
}
}
};
xmlhttpRequest.send(str);
}
  }
})();

使用方法很简单:

stcms.ajax(‘a.asp’,null,’get’,function(t){alert(t)});

很简单吧。另外发一下我boot.js,我觉得还是比较实用的;

/*
文件:boot.js
挂载:root
功能:加载js
设计:猫七@69dns.com
*/
(function(skin){
var i,ie,d;
stcms={
listen:function(f){
var l;
window.onload=(typeof(l=window.onload)!=’function’)?f:function(){l();f();};
},
$:function(id){
return document.getElementById(id);
}
};
ie=!!((d=(document)).all);
(function(arr){
for(i in arr){
var o=d.createElement(“script”);
o.setAttribute(“type”,”text/javascript”);
o.setAttribute(“src”,arr[i].replace(“stcms.”,”js/”).replace(/\./g,”\/”).replace(“*”,”all”)+”.js”)
d.getElementsByTagName(‘head’)[0].appendChild(o);
}
})([
'stcms.common.client.mouse',
'stcms.common.client.keyboard',
'stcms.skin.'+skin,
'stcms.common.form.form',
'stcms.common.form.grid',
'stcms.common.form.box',
'stcms.common.ajax',
'stcms.common.xml',
'stcms.common.cookie',
'stcms.user.checklogin',
'stcms.control.init'
]);
})(‘default’);

现在boot.js已经实现了皮肤,listen(实际就是window.onload),加载js,通过id获取dom等四个功能。
其他的可能就不太常用的,吧所有的都细分,这样可以减少请求和文件大小哦。
’stcms.common.ajax’,就是上边的ajax.js。
如果有时间,我也准备写个js框剪,集合了所有的功能,哈哈哈。

刚才发布了一篇文章:ASP/VBScript 汉字转拼音程序,只支持GBK(http://www.miaoqiyuan.cn/p/vbscript-gbk-pinyin)。你可能已经猜出来了,为了SEO优化而转换为拼音的路径,用这个函数可以很方便的解决了。但是中国文字博大精深,相同读音的字太多了,那么上边说的方法生成的路径可能就要冲突了,怎么办呢?在此,我给大家提供一个解决方法。因为是windows平台,使用vbscript脚本来实现。
实际很简单。先用like查询是否有类似的路径,并记录结果数tms。如果tms=0怎用拼音,如果结果数大于1,则用拼音&结果数的方法。很简单吧,给出的代码如下:

‘cscript [thisScriptName.vbs]

set conn=createobject(“ADODB.connection”)
conn.open “provider=microsoft.jet.oledb.4.0;data source=D:\miaoqiyuan\Products\labs\故事\dat\db.mdb”

‘table c
‘n 故事名称
‘d 标题读音
‘g 故事
‘c 出处
‘p 标题首写字母
‘u 故事路径
set rs=createobject(“ADODB.recordset”)
rs.open “select * from c”,conn,3,2
do while not rs.eof
staTme=timer
tms=conn.execute(“select count(u) from c where u like ‘”&rs(“p”)&”%’”)(0)
wscript.echo “正在整理”&rs(“n”)&”中…”
if tms=0 then
rs(“u”)=rs(“p”)
else
rs(“u”)=rs(“p”)&tms
end if
rs.update
wscript.echo “整理”&rs(“n”)&”完毕,用时”&(Timer()-staTme)*1000&”毫秒。”
rs.movenext
loop

一 3rd, 2010 | Filed under Experience(经验), Thinks(想法), VBscript
标签: ,

无法提供摘要。这是一篇受保护的文章。

评论关闭
一 3rd, 2010 | Filed under Life(生活)

实际这个程序很多地方都能用到,以前我也用过,今天在百度上找,竟然没找到。现在发上来,供以后备份。
ASP/VBScript 汉字转拼音程序,只支持GBK,至于原理吗,很简单,不要被Scripting.Dictionary吓倒了,他只是一个字典。至于拼音对应的数字,哈哈,这个要去分析下gbk的编码了。这个也是为什么只支持gbk的原因。如果要实现utf-8转换拼音的方法,直接用一个函数转换一下就可。在次先不贴出,在网上一搜就能找到。

一 3rd, 2010 | Filed under VBscript