Ajax¼¼ÊõÏê½â¶þ
ajaxÖÐXMLHttpRequest²ÎÊýÏê½â ÊÕ²Ø
XJAX ,²¢²»ÊÇÒ»ÖÖÐÂ[url=javascript:;]¼¼Êõ[/url]µÄµ®Éú.Ëüʵ¼ÊÉÏ´ú±íµÄÊǼ¸Ïî¼¼Êõ°´Ò»¶¨µÄ·½Ê½×éºÏÔÚÒ»ÔÚͬ¹²µÄÐ×÷Öз¢»Ó¸÷×ÔµÄ×÷ÓÃ.
Ëü°üÀ¨£º
ʹÓÃXHTMLºÍ[url=javascript:;]CSS[/url]±ê×¼»¯³ÊÏÖ£»
ʹÓÃDOMʵÏÖ¶¯Ì¬ÏÔʾºÍ½»»¥£»
ʹÓÃ[url=javascript:;]XML[/url]ºÍXSLT½øÐÐÊý¾Ý½»»»Óë´¦Àí£»
ʹÓÃXMLHttpRequest½øÐÐÒì²½Êý¾Ý¶ÁÈ¡£»
×îºóÓÃJavaScript°ó¶¨ºÍ´¦ÀíËùÓÐÊý¾Ý¡£
ÔÚÕâÀïÎÒÖ»Ïò̸µãXMLHttpRequest¶ÔÏó:
ÔÚÉÏÃæ¿´µ½,ʹÓÃXMLHttpRequest½øÐÐÒì²½Êý¾Ý¶ÁÈ¡£»
Ê×ÏÈ,ÎÒÃÇÒª´´½¨¸Ã[url=javascript:;]¶ÔÏó[/url],Õë¶Ô²»Í¬µÄä¯ÀÀÆ÷,¸Ã¶ÔÏóµÄ´´½¨[url=javascript:;]·½·¨[/url]ÊÇÓÐÇø±ð.
[url=javascript:;]Internet[/url] ExplorerÒÔActiveX¶ÔÏóÒýÈë,±»³ÆÎªXMLHTTP.
¶ÔÓÚInternet Explorerä¯ÀÀÆ÷£¬´´½¨XMLHttpRequest ·½·¨ÈçÏ£º
xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP.3.0"); //3.0»ò4.0, 5.0
xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp_request = new ActiveXObject("Microsoft.XMLHTTP");
ÔÚ²»Í¬Internet Explorerä¯ÀÀÆ÷ÖÐXMLHTTP°æ±¾¿ÉÄܲ»Ò»Ö£¬ÎªÁ˸üºÃµÄ¼æÈݲ»Í¬°æ±¾µÄInternet Explorerä¯ÀÀÆ÷£¬Òò´ËÎÒÃÇÐèÒª¸ù¾Ý²»Í¬°æ±¾µÄInternet Explorerä¯ÀÀÆ÷À´´´½¨XMLHttpRequestÀ࣬ÉÏÃæ[url=javascript:;]´úÂë[/url]¾ÍÊǸù¾Ý²»Í¬µÄInternet Explorerä¯ÀÀÆ÷´´½¨XMLHttpRequestÀàµÄ·½·¨¡£
¶ÔÓÚMozilla?Netscape?SafariµÈä¯ÀÀÆ÷£¬´´½¨XMLHttpRequest ·½·¨ÈçÏ£º
xmlhttp_request = new XMLHttpRequest();
¡¡¡¡Èç¹û·þÎñÆ÷µÄÏìӦûÓÐXML mime-type header£¬Ä³Ð©Mozillaä¯ÀÀÆ÷¿ÉÄÜÎÞ·¨Õý³£[url=javascript:;]¹¤×÷[/url]¡£ ΪÁ˽â¾öÕâ¸öÎÊÌ⣬Èç¹û·þÎñÆ÷ÏìÓ¦µÄheader²»ÊÇtext/xml£¬¿ÉÒÔµ÷ÓÃÆäËü·½·¨Ð޸ĸÃheader¡£
xmlhttp_request = new XMLHttpRequest();
xmlhttp_request.overrideMimeType('text/xml');
ÔÚʵ¼ÊÓ¦ÓÃÖУ¬ÎªÁ˼æÈݶàÖÖ²»Í¬°æ±¾µÄä¯ÀÀÆ÷£¬Ò»°ã½«´´½¨XMLHttpRequestÀàµÄ·½·¨Ð´³ÉÈçÏÂÐÎʽ£º
try{
¡¡if( window.ActiveXObject ){
¡¡¡¡for( var i = 5; i; i-- ){
¡¡¡¡¡¡try{
¡¡¡¡¡¡¡¡if( i == 2 ){
¡¡¡¡¡¡¡¡¡¡xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" );
¡¡¡¡¡¡¡¡}else{
¡¡¡¡¡¡¡¡¡¡xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡xmlhttp_request.setRequestHeader
Ïà¹ØÎĵµ£º
1¡¢ajax¼¼ÊõµÄ±³¾°
²»¿É·ñÈÏ£¬ajax¼¼ÊõµÄÁ÷ÐеÃÒæÓÚgoogleµÄ´óÁ¦Íƹ㣬ÕýÊÇÓÉÓÚgoogle earth¡¢google suggestÒÔ¼°gmailµÈ¶Ôajax¼¼ÊõµÄ¹ã·ºÓ¦Ó㬴ßÉúÁËajaxµÄÁ÷ÐС£¶øÕâÒ²ÈÃ΢Èí¸Ðµ½ÎޱȵÄÞÏÞΣ¬ÒòΪÔçÔÚ97Ä꣬΢Èí±ãÒѾ·¢Ã÷ÁËajaxÖеĹؼü¼¼Êõ£¬²¢ÇÒÔÚ99ÄêIE5ÍÆ³ö֮ʱ£¬Ëü±ã¿ªÊ¼Ö§³ÖXmlH ......
ÎÒÃǶ¼ÖªµÀ£¬ajaxÄÜÌá¸ßÒ³ÃæÔØÈëµÄËٶȵÄÖ÷ÒªÔÒòÊÇͨ¹ýajax¼õÉÙÁËÖØ¸´Êý¾ÝµÄÔØÈë£¬ÕæÕý×öµ½°´Ðè»ñÈ¡£¬¼ÈÈ»Èç´Ë£¬ÎÒÃÇÔÚдajax³ÌÐòµÄʱºò²»·ÁËÍ·ðË͵½Î÷£¬ÔÚ¿Í»§¶ËÔÙ×öÒ»´Î»º´æ,½øÒ»²½Ìá¸ßÊý¾ÝÔØÈëËÙ¶È¡£ÄǾÍÊÇÔÚÔØÈëÊý¾ÝµÄͬʱ½«Êý¾Ý»º´æÔÚä¯ÀÀÆ÷ÄÚ´æÖУ¬Ò»µ©Êý¾Ý±»ÔØÈë£¬Ö»ÒªÒ³ÃæÎ´Ë¢Ð£¬¸ÃÊý¾Ý¾ÍÓÀÔ¶µÄ»º´æÔÚÄÚ´æÖУ¬µ±Ó ......
# app\controllers\examples_controller.rb
ruby ´úÂë
class ExamplesController < ApplicationController
def ajax_select
@items = %w{AA BB}
end   ......
´ò¿ªÇëÇó
¡¡¡¡ÓÐÁËÒªÁ¬½ÓµÄ URL ºó¾Í¿ÉÒÔÅäÖÃÇëÇóÁË¡£¿ÉÒÔÓà XMLHttpRequest ¶ÔÏóµÄ open() ·½·¨À´Íê³É¡£¸Ã·½·¨ÓÐÎå¸ö²ÎÊý:
request-type:·¢ËÍÇëÇóµÄÀàÐÍ¡£µäÐ͵ÄÖµÊÇ GET »ò POST£¬µ«Ò²¿ÉÒÔ·¢ËÍ HEAD ÇëÇó¡£
url:ÒªÁ¬½ÓµÄ URL¡£
asynch:Èç¹ûÏ£ÍûʹÓÃÒì²½Á¬½ÓÔòΪ true£¬·ñÔòΪ false¡£¸Ã²ÎÊýÊÇ¿ÉÑ¡µÄ£¬Ä¬ÈÏΪ true¡£
......
Private static readonly object ReflectionLock = new object();
Lock (ReflectionLock)
{
Type scriptManagerType =
Type.GetType(
"System.Web.UI.ScriptManager, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35",
false);
......