ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>粉嫩一区二区三区国产精品,日韩香蕉视频,欧美亚洲爱爱另类综合http://www.aygfsteel.com/strive/category/17902.htmlzh-cnTue, 27 Feb 2007 19:10:31 GMTTue, 27 Feb 2007 19:10:31 GMT60jsçš„trim(),Ltrim(),Rtrim()函数 http://www.aygfsteel.com/strive/articles/93357.html一手的ž®çª½H?/dc:creator>一手的ž®çª½H?/author>Fri, 12 Jan 2007 03:18:00 GMThttp://www.aygfsteel.com/strive/articles/93357.htmlhttp://www.aygfsteel.com/strive/comments/93357.htmlhttp://www.aygfsteel.com/strive/articles/93357.html#Feedback0http://www.aygfsteel.com/strive/comments/commentRss/93357.htmlhttp://www.aygfsteel.com/strive/services/trackbacks/93357.htmljsçš„trim(),Ltrim(),Rtrim()函数
  在Javascript䏭䨓String对象æ·ÕdŠ trim,ltrim,rtrimæ–ÒŽ³•


利用Javascript中每个对è±?Object)çš„prototypeå±žæ€§æˆ‘ä»¬å¯ä»¥äØ“Javascript中的内置对象æ·ÕdŠ æˆ‘ä»¬è‡ªå·±çš„æ–¹æ³•å’Œå±žæ€§ã€?br />以下我们ž®Þq”¨˜q™ä¸ªå±žæ€§æ¥ä¸ºString对象æ·ÕdŠ ä¸‰ä¸ªæ–ÒŽ³•åQšTrim,LTrim,RTrim(作用和VbScript中的同名函数一æ ?
String.prototype.Trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.LTrim = function()
{
    return this.replace(/(^\s*)/g, "");
}
String.prototype.Rtrim = function()
{
    return this.replace(/(\s*$)/g, "");
}
æ€Žä¹ˆæ øP¼Œ½Ž€å•吧åQŒä¸‹é¢çœ‹ä¸€ä¸ªä‹É用的实例åQ?br /><script language=javascript>
String.prototype.Trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

var s = "    leading and trailing spaces    ";

window.alert(s + " (" + s.length + ")");

s = s.Trim();

window.alert(s + " (" + s.length + ")");

</script>



]]>
¾|‘页宽高‹¹‹é‡http://www.aygfsteel.com/strive/articles/88027.html一手的ž®çª½H?/dc:creator>一手的ž®çª½H?/author>Fri, 15 Dec 2006 10:31:00 GMThttp://www.aygfsteel.com/strive/articles/88027.htmlhttp://www.aygfsteel.com/strive/comments/88027.htmlhttp://www.aygfsteel.com/strive/articles/88027.html#Feedback0http://www.aygfsteel.com/strive/comments/commentRss/88027.htmlhttp://www.aygfsteel.com/strive/services/trackbacks/88027.html
   < SCRIPT LANGUAGE = " JavaScript " >  
   
var  s; 
   s 
+=   " \r\n¾|‘页可见区域宽: " +  document.body.clientWidth; 
   s 
+=   " \r\n¾|‘页可见区域高: " +  document.body.clientHeight; 
   s 
+=   " \r\n¾|‘页可见区域宽: " +  document.body.offsetWidth ?   + "  (包括边线的宽) " ; 
   s 
+=   " \r\n¾|‘页可见区域高: " +  document.body.offsetHeight  + "  (包括边线的宽) " ; 
   s 
+=   " \r\n¾|‘页正文全文宽: " +  document.body.scrollWidth; 
   s 
+=   " \r\n¾|‘页正文全文高: " +  document.body.scrollHeight; 
   s 
+=   " \r\n¾|‘页被卷åŽÈš„高: " +  document.body.scrollTop; 
   s 
+=   " \r\n¾|‘页被卷åŽÈš„左: " +  document.body.scrollLeft; 
   s 
+=   " \r\n¾|‘页正文部分上: " +  window.screenTop; 
   s 
+=   " \r\n¾|‘页正文部分左: " +  window.screenLeft; 
   s 
+=   " \r\n屏幕分èöL率的高: " +  window.screen.height; 
   s 
+=   " \r\n屏幕分èöL率的宽: " +  window.screen.width; 
   s 
+=   " \r\n屏幕可用工作区高度: " +  window.screen.availHeight; 
   s 
+=   " \r\n屏幕可用工作区宽度: " +  window.screen.availWidth; 
   alert(s); 
   
</ SCRIPT >  

   

]]>
javascript事äšg查询¾l¼åˆhttp://www.aygfsteel.com/strive/articles/88026.html一手的ž®çª½H?/dc:creator>一手的ž®çª½H?/author>Fri, 15 Dec 2006 10:30:00 GMThttp://www.aygfsteel.com/strive/articles/88026.htmlhttp://www.aygfsteel.com/strive/comments/88026.htmlhttp://www.aygfsteel.com/strive/articles/88026.html#Feedback0http://www.aygfsteel.com/strive/comments/commentRss/88026.htmlhttp://www.aygfsteel.com/strive/services/trackbacks/88026.htmljavascript事äšg查询¾l¼åˆÂ 

click() 对象.click() 使对象被点击。�
closed 对象.closed 对象½H—口是否已关闭true/false 
clearTimeout(对象) 清除已设¾|®çš„setTimeout对象 
clearInterval(对象) 清除已设¾|®çš„setInterval对象 
confirm("提示信息") 弹出¼‹®è®¤æ¡†ï¼Œ¼‹®å®š˜q”回true取消˜q”回false 
cursor:样式 更改鼠标样式 hand crosshair text wait help default auto e/s/w/n-resize 

event.clientX ˜q”回最后一‹Æ¡ç‚¹å‡»é¼ æ ‡X坐标å€û|¼›Â 
event.clientY ˜q”回最后一‹Æ¡ç‚¹å‡»é¼ æ ‡Y坐标å€û|¼›Â 
event.offsetX ˜q”回当前鼠标悬停X坐标值Â?
event.offsetY ˜q”回当前鼠标悬停Y坐标值Â?

document.write(document.lastModified) ¾|‘页最后一‹Æ¡æ›´æ–°æ—¶é—¾b?
document.ondblclick=x 当双击鼠标äñ”生事件Â?
document.onmousedown=x 单击鼠标键äñ”生事件Â?

document.body.scrollTop; ˜q”回和设¾|®å½“前竖向滚动条的坐标å€û|¼Œ™åÖM¸Žå‡½æ•°é…åˆ, 
document.body.scrollLeft; ˜q”回和设¾|®å½“前横向滚动务的坐标å€û|¼Œ™åÖM¸Žå‡½æ•°é…åˆåQŒÂ?
document.title document.title="message"; 当前½H—口的标题栏文字 
document.bgcolor document.bgcolor="颜色å€?; 改变½H—口背景颜色 
document.Fgcolor document.Fgcolor="颜色�; 改变正文颜色 
document.linkcolor document.linkcolor="颜色å€?; 改变­‘…联接颜色Â?
document.alinkcolor document.alinkcolor="颜色�; 改变正点击联接的颜色 
document.VlinkColor document.VlinkColor="颜色�; 改变已访问联接的颜色 
document.forms.length ˜q”回当前™åµform表单敊W?
document.anchors.length ˜q”回当前™åµé”šçš„æ•°é‡Â?
document.links.length ˜q”回当前™åµè”接的数量 
document.onmousedown=x 单击鼠标触发事äšg 
document.ondblclick=x 双击鼠标触发事äšg 
defaultStatus window.status=defaultStatus; ž®†çŠ¶æ€æ è®„¡½®é»˜è®¤æ˜„¡¤ºÂ 

function function xx(){...} 定义函数 
isNumeric 判断是否是数字�
innerHTML xx=对象.innerHTML 输入某对象标½{¾ä¸­çš„html源代码Â?
innerText divid.innerText=xx ž®†ä»¥div定位以idå‘½åçš„å¯¹è±¡å€ÆD®¾ä¸ºXX 

location.reload(); 使本™åµåˆ·æ–ŽÍ¼Œtarget可等于一个刷新的¾|‘页 

Math.random() 随机涉|•°,只能æ˜?åˆ?之间的数,如果要得到其它数,可以ä¸?10,再取敾b?
Math.floor(number) ž®†å¯¹è±¡numberè½¬äØ“æ•´æ•°åQŒèˆå–所有小敊W?
Math.min(1,2) ˜q”回1,2哪个ž®Â?
Math.max(1,2) ˜q”回1,2哪个大Â?

navigator.appName ˜q”回当前‹¹è§ˆå™¨å¿UŠW?
navigator.appVersion ˜q”回当前‹¹è§ˆå™¨ç‰ˆæœ¬å·Â 
navigator.appCodeName ˜q”回当前‹¹è§ˆå™¨ä»£ç åå­—Â?
navigator.userAgent ˜q”回当前‹¹è§ˆå™¨ç”¨æˆ·ä»£æ ‡å¿— 

onsubmit onsubmit="return(xx())" 使用函数˜q”回值Â?
opener opener.document.对象 控制原打开½H—体对象 

prompt xx=window.prompt("提示信息","预定�); 输入语句 
parent parent.框架å?对象 控制框架™åµé¢Â 

return return false ˜q”回值Â?
random 随机参数åQ?è‡?之间åQ‰Â?
reset() form.reset(); 使form表单内的数据重置 

split("") string.split("") ž®†string对象字符以逗号隔开 
submit() form对象.submit() 使form对象提交数据 

String对象的 charAt(x)对象 反回指定对象的第多少位的字母 
lastIndexOf("string") 从右到左询找指定字符åQŒæ²¡æœ‰è¿”å›?1 
indexOf("string") 从左到右询找指定字符åQŒæ²¡æœ‰è¿”å›?1 
LowerCase() ž®†å¯¹è±¡å…¨éƒ¨è{为小写Â?
UpperCase() ž®†å¯¹è±¡å…¨éƒ¨è{为大写Â?
substring(0,5) string.substring(x,x) ˜q”回对象中从0åˆ?的字½W¦Â?
setTimeout("function",time) 讄¡½®ä¸€ä¸ªè¶…时对象Â?
setInterval("function",time) 讄¡½®ä¸€ä¸ªè¶…时对象Â?

toLocaleString() x.toLocaleString() 从xæ—‰™—´å¯¹è±¡ä¸­èŽ·å–æ—¶é—ß_¼Œä»¥å­—½W¦ä¸²åž‹å¼å­˜åœ¨Â 
typeof(变量å? ‹‚€æŸ¥å˜é‡çš„¾cÕdž‹åQŒå€¼æœ‰åQšString,Boolean,Object,Function,Underfined 

window.event.button==1/2/3 鼠标键左键等äº?右键½{‰äºŽ2两个键一èµähŒ‰ä¸? 
window.screen.availWidth ˜q”回当前屏幕宽度(½Iºç™½½Iºé—´) 
window.screen.availHeight ˜q”回当前屏幕高度(½Iºç™½½Iºé—´) 
window.screen.width ˜q”回当前屏幕宽度(分èöL率å€? 
window.screen.height ˜q”回当前屏幕高度(分èöL率å€? 
window.document.body.offsetHeight; ˜q”回当前¾|‘页高度 
window.document.body.offsetWidth; ˜q”回当前¾|‘页宽度 
window.resizeTo(0,0) ž®†çª—口设¾|®å®½é«˜Â?
window.moveTo(0,0) ž®†çª—口移到某位置 
window.focus() 使当前窗口获得焦点�
window.scroll(x,y) ½H—口滚动条坐标,y控制上下¿UÕdЍåQŒé¡»ä¸Žå‡½æ•°é…åˆÂ?
window.open() window.open("地址","名称","属�) 
属�toolbar(工具�,location(地址�,directions,status(状态栏), 
menubar(菜单æ ?,scrollbar(滚动æ?,resizable(改变大小), width(å®?,height(é«?,fullscreen(全 屏),scrollbars(全屏时无滚动条无参 数,channelmode(宽屏),left(打开½H—口x坐标),top(打开½H—口y坐标) 
window.location = ’view-source:’Â? window.location.href 应用事äšg查看¾|‘页源代ç ? 

a=new Date(); //创徏aä¸ÞZ¸€ä¸ªæ–°çš„æ—¶æœŸå¯¹è±¡Â?
y=a.getYear(); //yçš„å€égؓ从对象a中获取年份值 两位数òq´ä†¾Â 
y1=a.getFullYear(); //获取全年份数 四位数年ä»ãq?
m=a.getMonth(); //获取月䆾值�
d=a.getDate(); //获取日期值�
d1=a.getDay(); //获取当前星期值�
h=a.getHours(); //获取当前ž®æ—¶æ•ŠW?
m1=a.getMinutes(); //获取当前分钟敊W?
s=a.getSeconds(); //获取当前¿U’钟敊W?

对象.style.fontSize="文字大小"; 
单位åQšmm/cm/in英寸/pcå¸?ptç‚?px象素/em文字高Â?
1in=1.25cm 
1pc=12pt 
1pt=1.2px(800*600分辩率下) 

文本字体属性: 
fontSize大小 
family字体 
color颜色 
fontStyle风格åQŒå–å€égØ“normal一èˆ?italic斜体,oblique斜体且加¾_—Â?
fontWeight加粗,取å€égØ“100åˆ?00不等,900最¾_?light,normal,bold 
letterSpacing间距,更改文字间距¼›?取å€égØ“,1pt,10px,1cm 
textDecoration:文字修饰;取å€?none不修é¥?underline下划¾U?overline上划¾U¿Â?
background:文字背景颜色, 
backgroundImage:背景囄¡‰‡,取å€égؓ囄¡‰‡çš„æ’å…¥èµ\径Â?

点击¾|‘页正文函数调用触发器: 

1.onClick 当对象被点击 
2.onLoad 当网™å‰|‰“å¼€,只能书写在body中Â?
3.onUnload 当网™åµå…³é—­æˆ–¼›Õd¼€æ—?只能书写在body中Â?
4.onmouseover 当鼠标悬于其上时 
5.onmouseout 当鼠标离开对象时�
6.onmouseup 当鼠标松开 
7.onmousedown 当鼠标按下键 
8.onFocus 当对象获取焦ç‚ÒŽ—¶Â 
9.onSelect 当对象的文本被选中时�
10.onChange 当对象的内容被改变�
11.onBlur 当对象失åŽÈ„¦ç‚¹Â?
onsubmit=return(ss())表单调用时返回的值�

直线 border-bottom:1x solid black 
虚线 border-bottom:1x dotted black 
点划¾U¿Â border-bottom:2x dashed black 
双线 border-bottom:5x double black 
槽状 border-bottom:1x groove black 
脊状 border-bottom:1x ridge black 

1.边缘高光glow(color=颜色,strength=亮光大小) 

Tags: javascript js ¾|‘页脚本  

shunz – 周� 2005 –�3 –�0 13:04 
学习½W”记 
发表评论 – 更多 –�530 reads 
  
 �
¾|‘页自动讄¡½®ä¸ÞZ¸»™åµÂ?
在定义了前面的javascriptçš„cookie函数的前题下åQšÂ?
在后面加上�

onMouseOver="if(!this.isHomePage(�a target="_blank">http://www.mydomain.com/�  
&& 
window.external && !GetCookie(’HomePage�) 

{ 
this.setHomePage(�a target="_blank">http://www.mydomain.com/� ; 

SetCookie(’HomePage�’true�; 
} 
return 
false;"> 
òq¶ä¸”在前面加上Â?/p>

]]>
公用çš?AJAX 框架 雏åÅžhttp://www.aygfsteel.com/strive/articles/85060.html一手的ž®çª½H?/dc:creator>一手的ž®çª½H?/author>Sat, 02 Dec 2006 09:38:00 GMThttp://www.aygfsteel.com/strive/articles/85060.htmlhttp://www.aygfsteel.com/strive/comments/85060.htmlhttp://www.aygfsteel.com/strive/articles/85060.html#Feedback0http://www.aygfsteel.com/strive/comments/commentRss/85060.htmlhttp://www.aygfsteel.com/strive/services/trackbacks/85060.html你完全可以认为我是抄来的åQŒå› ä¸ºæˆ‘ž®±æ˜¯å€Ÿé‰´äº†åˆ«äººçš„ã€?/p>
//  定义 XMLHttpRequest 对象实例
var  http_request  =   false ;

//  定义可复用的 http è¯äh±‚发送函æ•?/span>
function  send_request(method, url, content, responseType, callback)  {
    
//  初始化,指定处理函数åQŒå‘送请求的函数
    http_request  =   false ;
    
if  (window.XMLHttpRequest)  {
        http_request 
=   new  XMLHttpRequest();
        
if  (http_request.overrideMimeType)  {
            http_request.overrideMimeType(
" text/xml " );
        }

    }
  else   {
        
if  (window.ActiveXObject)  {
            
try   {
                http_request 
=   new  ActiveXObject( " Msxml2.XMLHTTP " );
            }

            
catch  (e)  {
                
try   {
                    http_request 
=   new  ActiveXObject( " Microsoft.XMLHTTP " );
                }
catch  (e)  {
                    
return   false ;
                }

            }

        }

    }

    
if  ( ! http_request)  {
        window.alert(
" 创徏 XMLHttpRequest实例对象错误åQ?/span> " );
        
return   false ;
    }

    
    
if  (responseType.toLowerCase()  ==   " text " )  {
        http_request.onreadystatechange 
=  callback;
    }
  else   {
        
if  (responseType.toLowerCase()  ==   " xml " )  {
            http_request.onreadystatechange 
=  callback;
        }
  else   {
            window.alert(
" 响应¾cÕdˆ«å‚数错误åQ?/span> " );
            
return   false ;
        }

    }

    
    
if  (method.toLowerCase()  ==   " get " )  {
        http_request.open(method, url, 
true );
    }
  else   {
        
if  (method.toLowerCase()  ==   " post " )  {
            http_request.open(method, url, 
true );
            http_request.setRequestHeader(
" Content-Type " ,  " application/x-www-form-urlencoded " );
        }
  else   {
            window.alert(
" Http è¯äh±‚¾cÕdˆ«å‚数错误ã€?/span> " );
            
return   false ;
        }

    }

    
    http_request.send(content);
}



完全æ˜?柯自聪那个呵åQŒï¼Œå…¶å®ƒæˆ‘都能背下来了ã€?img src ="http://www.aygfsteel.com/strive/aggbug/85060.html" width = "1" height = "1" />

]]>
JavaScript 与多¾U¿ç¨‹ http://www.aygfsteel.com/strive/articles/84964.html一手的ž®çª½H?/dc:creator>一手的ž®çª½H?/author>Sat, 02 Dec 2006 00:11:00 GMThttp://www.aygfsteel.com/strive/articles/84964.htmlhttp://www.aygfsteel.com/strive/comments/84964.htmlhttp://www.aygfsteel.com/strive/articles/84964.html#Feedback0http://www.aygfsteel.com/strive/comments/commentRss/84964.htmlhttp://www.aygfsteel.com/strive/services/trackbacks/84964.html 

1.在javascript中,可以用三¿Uæ–¹å¼æ¥æ¨¡æ‹Ÿå¤šçº¿½E‹ã€?br />a)在javascript中用command模式模拟多线½E?/a>
b)window.setTimeoutåQˆcode,timeåQ?br />让代码在指定旉™—´åŽæ‰§è¡Œä¸€‹Æ¡ã€?br />c)setIntervalåQˆcode,timeåQ?br />让代码按照指定时间间隔来执行ã€?br />
注意setTimeout与setInterval的区�/a>

2.ä¼ég¹Žæ— æ³•在javascript的单¾U¿ç¨‹æ‰§è¡ŒçŽ¯å¢ƒä¸­åˆ©ç”¨AutoItX来捕捉onload事äšg中的alertã€?br />背景åQšselenium中采用了重蝲window.alert的方式,来截èŽäh‰€æœ‰javascript中的alertã€?br />Window.alert = function (msg) {
This.Alerted.push(msg);
};
˜q™æ ·åQŒæ‰€æœ‰çš„alert消息被悄无声息地存放在一个队列中。原本的alert弹出后,如果不点击OK或者关闭,整个javascript执行¾U¿ç¨‹ž®×ƒ¸€ç›´åœæ­¢ã€‚重载window.alert的方式避免弹出alert½H—口åQŒä¿è¯äº†selenium™åºåˆ©åœ°æ‰§è¡Œã€?br />但是åQŒè¿™¿Uæ–¹å¼æ— æ³•捕捉bodyçš„onload事äšg中的alert。因为每一‹Æ¡åˆ·æ–°é¡µé¢çš„æ—¶å€™ï¼Œæ‰€æœ‰çš„被重载的æ–ÒŽ³•和事仉™ƒ½ä¼šè¢«æ¸…空åQŒè€Œæˆ‘们来不及再一‹Æ¡é‡è½½alertæ–ÒŽ³•ã€?br />使用Watir的时候,我注意到了她是借助一个名ä¸?a >AutoItXåº?/a>来实现这个功能的。于是,设想是否可以通过同样的方法来捕捉onload事äšg中的alertæ–ÒŽ³•ã€?br />我不详细介绍AutoItX¾cÕdº“åQŒç®€è¦è¯´ä¸€ä¸‹å¥¹çš„原理:
var autoit = new ActiveXObject(“AutoItX3.Control�;
autoit.WinWait(title,text,â€?;//½{‰å¾…标题为titleåQŒåŒ…含text的窗口出çŽ?/p>

开始的设想是ä‹É用如下的æ–ÒŽ³•来不断查询alert½H—口是否弹出åQ?br />window.setTimeout(‘fuction check() {autoit.WinExists(title,txt) == 1?return:check()â€?100)
但是åQŒå´æ— æ³•捕捉到alert。原因就是alert弹出后,如果不点击OK或者关闭,整个javascript执行¾U¿ç¨‹ž®×ƒ¼šåœæ­¢ã€‚所以,调用check函数的计时也停止了。这个问题用模拟多线½E‹æ˜¯æ— æ³•解决的ã€?/p>

对于˜q™ä¸ªé—®é¢˜çš„一ä¸?a >解决æ–ÒŽ¡ˆ



]]>
AJAX入门必读与实例(仿google的拖动)http://www.aygfsteel.com/strive/articles/84946.html一手的ž®çª½H?/dc:creator>一手的ž®çª½H?/author>Fri, 01 Dec 2006 13:18:00 GMThttp://www.aygfsteel.com/strive/articles/84946.htmlhttp://www.aygfsteel.com/strive/comments/84946.htmlhttp://www.aygfsteel.com/strive/articles/84946.html#Feedback0http://www.aygfsteel.com/strive/comments/commentRss/84946.htmlhttp://www.aygfsteel.com/strive/services/trackbacks/84946.html AJAX入门必读与实例(仿google的拖动)

AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScriptå’ŒXMLåQ‰ï¼Œæ˜¯æŒ‡ä¸€¿Uåˆ›å»ÞZº¤äº’式¾|‘页应用的网™åµå¼€å‘技术ã€?br />
主要包含了以下几¿UæŠ€æœ¯ï¼š

AjaxåQˆAsynchronous JavaScript + XMLåQ‰çš„定义
åŸÞZºŽweb标准åQˆstandards-based presentationåQ‰XHTML+CSS的表½Cºï¼›
使用 DOMåQˆDocument Object ModelåQ‰è¿›è¡ŒåŠ¨æ€æ˜¾½CºåŠäº¤äº’åQ?
使用 XML å’?XSLT ˜q›è¡Œæ•°æ®äº¤æ¢åŠç›¸å…Ïx“ä½œï¼›
使用 XMLHttpRequest ˜q›è¡Œå¼‚步数据查询、检索;
使用 JavaScript ž®†æ‰€æœ‰çš„东西¾l‘定在一赗÷€?br />
  传统的web应用允许用户填写表单(form)åQŒå½“提交表单时就向web服务器发送一个请求。服务器接收òq¶å¤„理传来的表单åQŒç„¶åŽè¿”回一个新的网™åüc€‚这个做法浪费了许多带宽åQŒå› ä¸ºåœ¨å‰åŽä¸¤ä¸ª™åµé¢ä¸­çš„大部分HTML代码往往是相同的。由于每‹Æ¡åº”ç”¨çš„äº¤äº’éƒ½éœ€è¦å‘æœåŠ¡å™¨å‘é€è¯·æ±‚ï¼Œåº”ç”¨çš„å“åº”æ—¶é—´å°±ä¾èµ–äºŽæœåŠ¡å™¨çš„å“åº”æ—¶é—´ã€‚è¿™å¯ÆD‡´äº†ç”¨æˆïL•Œé¢çš„响应比本地应用慢得多ã€?

  与此不同åQŒAJAXåº”ç”¨å¯ä»¥ä»…å‘æœåŠ¡å™¨å‘é€åÆˆå–å›žå¿…éœ€çš„æ•°æ®ï¼Œå®ƒä‹É用SOAP或其它一些基于XMLçš„web service接口åQŒåƈ在客æˆïL«¯é‡‡ç”¨JavaScript处理来自服务器的响应。因为在服务器和‹¹è§ˆå™¨ä¹‹é—´äº¤æ¢çš„æ•°æ®å¤§é‡å‡å°‘åQŒç»“æžœæˆ‘ä»¬å°±èƒ½çœ‹åˆ°å“åº”æ›´å¿«çš„åº”ç”¨ã€‚åŒæ—¶å¾ˆå¤šçš„å¤„ç†å·¥ä½œå¯ä»¥åœ¨å‘å‡ø™¯·æ±‚的客户端机器上完成åQŒæ‰€ä»¥Web服务器的处理旉™—´ä¹Ÿå‡ž®‘了ã€?

Ajax应用½E‹åºçš„优势在于:

1. 通过异步模式åQŒæå‡äº†ç”¨æˆ·ä½“验

2. 优化了浏览器和服务器之间的传输,减少不必要的数据往˜q”,减少了带宽占ç”?

3. Ajax引擎在客æˆïL«¯˜qè¡ŒåQŒæ‰¿æ‹…了一部分本来由服务器承担的工作,从而减ž®‘了大用户量下的服务器负载ã€?

**************************************************************************************************

xmlhttp的属性:

onreadystatechange   指定当readyState属性改变时的事件处理句柄,只写 ã€?br />readyState     ˜q”回当前è¯äh±‚的状态,只读ã€?br />responseBody     ž®†å›žåº”信息正文以unsigned byte数组形式˜q”回åQŒåªè¯?
responseStream       以Ado Stream对象的åŞ式返回响应信息,只读 ã€?br />responseText       ž®†å“åº”信息作为字½W¦ä¸²˜q”回åQŒåªè¯?ã€?br />responseXML       ž®†å“åº”信息格式化为Xml Document对象òq¶è¿”回,只读 ã€?br />status         ˜q”回当前è¯äh±‚çš„http状态码åQŒåªè¯?ã€?br />statusText       ˜q”回当前è¯äh±‚的响应行状态,只读 ã€?br />
xmlhttp的方法:
abort         取消当前è¯äh±‚
getAllResponseHeaders   获取响应的所有http�
getResponseHeader   从响应信息中获取指定的http�
open         创徏一个新的httpè¯äh±‚åQŒåƈ指定此请求的æ–ÒŽ³•、URL以及验证信息(用户å?密码) //常用
send         发送请求到httpæœåŠ¡å™¨åÆˆæŽ¥æ”¶å›žåº” //常用
setRequestHeader   单独指定è¯äh±‚的某个httpå¤?

语法åQ?br />onreadystatechang 指定当readyState属性改变时的事件处理句柄,只写

xmlHttpObj.onreadystatechange=a;
function a(){
  if(xmlHttpObj.readyState==4){
    if(xmlHttpObj.stateus==200){
        alert(xmlHttpObj.responseText);
    }else{
        alert("加蝲å¤ÞpÓ|åQ\n原因åQ?+xmlHttpObj.stateText);
    }
  }
}



readyState ˜q”回当前è¯äh±‚的状态,只读ã€?br />
xmlHttpObj.readyState;

参见函数a;

readyStateåQŒå˜é‡ã€‚定义如下:
0 (未初始化)       对象已徏立,但是ž®šæœªåˆå§‹åŒ–(ž®šæœªè°ƒç”¨openæ–ÒŽ³•åQ?
1 (初始åŒ?       对象已徏立,ž®šæœªè°ƒç”¨sendæ–ÒŽ³•
2 (发送数æ?       sendæ–ÒŽ³•已调用,但是当前的状态及http头未çŸ?
3 (数据传送中)       已接攉™ƒ¨åˆ†æ•°æ®ï¼Œå› äؓ响应及http头不全,˜q™æ—¶é€šè¿‡responseBodyå’ŒresponseText获取部分数据会出现错误,
4 (完成)       数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数�



responseText ž®†å“åº”信息作为字½W¦ä¸²˜q”回åQŒåªè¯?ã€?br />
xmlHttpObj.responseText;

responseBody ,responseStream ,responseText ,responseXML ä¸Žä¹‹ç›æ€¼¼

responseXML可以˜q”回一个文档树(DOM)åQŒå¯ä»¥ä‹É用document.getElementsByTagName,document.getElementsByTagNameNS,document.getElementById½{‰å¯¹å…¶æ“ä½?br />


stateus ˜q”回当前è¯äh±‚çš„http状态码åQŒåªè¯?ã€?br />
xmlHttpObj.stateus;

参见函数a;

长整形标准http状态码åQŒå®šä¹‰å¦‚下:
�  描述
100   Continue
101   Switching protocols
200   OK
201   Created
202   Accepted
203   Non-Authoritative Information
204   No Content
205   Reset Content
206   Partial Content
300   Multiple Choices
301   Moved Permanently
302   Found
303   See Other
304   Not Modified
305   Use Proxy
307   Temporary Redirect
400   Bad Request
401   Unauthorized
402   Payment Required
403   Forbidden
404   Not Found
405   Method Not Allowed
406   Not Acceptable
407   Proxy Authentication Required
408   Request Timeout
409   Conflict
410   Gone
411   Length Required
412   Precondition Failed
413   Request Entity Too Large
414   Request-URI Too Long
415   Unsupported Media Type
416   Requested Range Not Suitable
417   Expectation Failed
500   Internal Server Error
501   Not Implemented
502   Bad Gateway
503   Service Unavailable
504   Gateway Timeout
505   HTTP Version Not Supported


statusText ˜q”回当前è¯äh±‚的响应行状æ€?br />
xmlHttpObj.stateText;

参考函数a;


open 创徏一个新的httpè¯äh±‚åQŒåƈ指定此请求的æ–ÒŽ³•、URL以及验证信息

xmlHttpObj.open(Method,URL[,Async][,User][,PassWord]);
[]表示可�br />
参数åQ?br />Method:POST|GET(大小写不敏感)
URL:è¯äh±‚çš„URL地址åQŒå¯ä»¥äØ“¾lå¯¹åœ°å€ä¹Ÿå¯ä»¥äؓ相对地址ã€?br />Async:[true|fase] 是否同步åQŒé»˜è®¤äØ“trueã€?br />User:如果服务器需要验证,此处指定用户名,如果未指定,当服务器需要验证时åQŒåˆ™ä¼šå¼¹å‡ºéªŒè¯çª—口ã€?
PasswordåQšéªŒè¯ä¿¡æ¯ä¸­çš„å¯†ç éƒ¨åˆ†ï¼Œå¦‚æžœç”¨æˆ·åäØ“½Iºï¼Œåˆ™æ­¤å€¼å°†è¢«å¿½ç•¥ã€?br />
send 发送请求到httpæœåŠ¡å™¨åÆˆæŽ¥æ”¶å›žåº”

xmlHttpObj.send([Text]);

参数åQ?br />Text:要发送的数据åQŒé»˜è®¤äØ“½I?null);

************************************************************************************************************
一个例子:


创徏一个xmlhttp对象åQšçŽ°åœ¨çš„¾lå¯¹å¤šæ•°‹¹è§ˆå™¨éƒ½å¢žåŠ äº†å¯¹XmlHttp的支持,IE中ä‹É用ActiveXObject方式创徏XmlHttp对象åQŒå…¶ä»–浏览器如:Firefox、Opera、NetScape½{‰é€šè¿‡window.XMLHttpRequest来创建xmlhttp对象ã€?br />var xmlhttp;
function new_xmlHttp(){
  var a=null;
  if(window.ActiveXObject){//IE(此处的IE泛指所有用IE内核的浏览器åQŒä¸‹å?
    a=new ActiveXObject("Msxml2.XMLHTTP");
    if(!a){
        a=new ActiveXObject("Microsoft.XMLHTTP")
    }
  }else if(window.XMLHttpRequest){//Mozilla(FireFox,NS)
    a=new XMLHttpRequest()
  }
  return a;
}
xmlhttp=new_xmlhttp();
xmlhttp.open("GET","http://localhost/xmlfile.xml",false);//创徏一个新的HTTPè¯äh±‚åQŒåƈ指定URL
xmlhttp.send();//发�br />xmlhttp.onreadystatechange=function(){
  if(xmlhttp.readyState==4){
    if(xmlhttp.stateus==200){
        alert(xmlhttp.responseText);
    }else{
        alert("加蝲å¤ÞpÓ|åQ\n原因åQ?+xmlhttp.stateText);
    }
  }
}


一个简单完整的XMLHTTP例子åQ?br />ž®†ä»¥ä¸‹ä»£ç ä¿å­˜äؓ本地HTMLæ–‡äšg再ä‹Éç”?br />
CODE:
<!--begin-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"[url]http://www.w3.org/TR/html4/loose.dtd[/url]">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>一个简单的XMLHTTP例子</title>
</head>

<body>
<script>
var oDiv
var xh
function getXML()
{
oDiv = document.all.m
oDiv.innerHTML = "正在装蝲栏目数据åQŒè¯·½Eä¾¯......."
oDiv.style.display= ""
xh = new ActiveXObject("Microsoft.XMLHTTP")
xh.onreadystatechange = getReady
xh.open("GET",a.value,true)
xh.send()

}

function getReady()
{
if(xh.readyState==4)
{
if(xh.status==200)
{

  oDiv.innerHTML = "完成"
}
else
{
  oDiv.innerHTML = "抱歉åQŒè£…载数据失败。原因:" + xh.statusText
}
}
}
</script>
<body>
xmlhttp异步的例�
URL:<input name=a value="[url]http://s041149.stu.cdut.edu.cn/xml/myxmltest.xml[/url]" style="width:600px">
<input onclick="getXML()" type="button" value="得到源代�>
<input onclick="if(xh && xh.responseText) {alert(xh.responseText);oDiv.innerHTML=xh.responseText}" type="button" value="昄¡¤ºæºä»£ç ?>
<div id=m></div>

</body>
</html>

<!--end-->


例子åQ?br />仿GOOGLEä¸ªæ€§åŒ–ä¸»é¡µçš„æ‹–åŠ¨åÆˆä¿å­˜å®šä½,http://s041149.stu.cdut.edu.cn/xml/myxmltest.xmlä¸ÞZ¿å­˜ç›¸å¯¹ä½¾|®çš„XMLæ–‡äšgåQŒè¯·æ³¨æ„æ‹–动前后的变åŒ?br />http://s041149.stu.cdut.edu.cn/xml/åQˆç»†èŠ‚é—®é¢˜å¯E-MAIL:hktx[at]163[dot]comåQ?br />


]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º ½ð´¨ÏØ| ¸Á¶ûÏØ| ÁéÊ¯ÏØ| ÉçÆìÏØ| ºÚÉ½ÏØ| Ê¯ÈªÏØ| ÐðÓÀÏØ| È·É½ÏØ| ÔªÊÏÏØ| ¼¦Î÷ÊÐ| ƽºÍÏØ| ¡²ýÏØ| ÃÖ¶ÉÏØ| °¢À­¶ûÊÐ| ÎÚº£ÊÐ| ·½ÕýÏØ| ÃɳÇÏØ| Î÷ÎÚÖéÄÂÇ߯ì| ³¤°×| ÑÎÍ¤ÏØ| ¶¨ÌÕÏØ| º¼½õÆì| »ù¡ÊÐ| Èý½­| ƽ¶ÈÊÐ| Èç¶«ÏØ| ÊèÀÕÏØ| ÓàÇìÏØ| ²ýÒØÊÐ| ¾¸±ßÏØ| Ðì»ãÇø| ÁùÅÌË®ÊÐ| °×³ÇÊÐ| É£Ö²ÏØ| °üÍ·ÊÐ| ÓÑÒêÏØ| ÈéɽÊÐ| º£ÄÏÊ¡| Ëì´¨ÏØ| Äþ½òÏØ| ·ö¹µÏØ|