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
Ïà¹ØÎĵµ£º
×òÌì¿´ÁËÆª²»ÊǺÜÑϽ÷µÄ²©ÎÄ¡¶Ò»¸öËãÃüС͵³ÌÐòµÄµ®Éú¡·£¬ÀïÃæÐ´ÁËÒ»¸öͨ¹ýAJAX͵ÇÔ±ðÈËÍøÕ¾Ëã·¨µÄ·½·¨¡£Êµ¼ùÁËһϸù±¾²»ÐУ¬AJAXËÆºõ²»ÄÜ¿çÓò¡£
ºóÀ´ÎÒÏëÁËһЩ½â¾ö·½·¨£¬ÖÕÓÚ¿çÓò³É¹¦¡£ÏÖÔÚ¹«²¼Ò»Ï·½·¨¡£
ÈÎÎñ£ºÔÚ×Ô¼ºÍøÕ¾×ö¸ö±íµ¥£¬Ïò¡ ......
# app\controllers\examples_controller.rb
ruby ´úÂë
class ExamplesController < ApplicationController
def ajax_select
@items = %w{AA BB}
end   ......
ÒÔǰÌá½»±íµ¥µÄ·½·¨ÊÇsubmit£¬µ«ÊÇÕâÑùµÄ»°ÎÞ·¨Ê¹ÓÃAjax£¬Ò»Ìá½»¾ÍÒâζ×ÅÐèҪˢÐÂÒ³Ãæ¡£ÁíÒ»ÖÖ·½·¨ÊÇÔÚurlÉÏÃæ¼ÓÉÏparameterÀ´·¢ËÍ±íµ¥£¬µ«ÊÇÕâÑù»á±©Â¶·¢Ë͵ÄÄÚÈÝ¡£µ«ÊÇÈç¹ûÓÃAjax·¢ËÍ±íµ¥µÄ»°¾ÍÄܱÜÃâÉÏÃæÁ½ÖÖÎÊÌâ¡£
µ«ÊÇÎÒ֮ǰ×Ô¼ºÐ´µÄʱºò£¬×ÜÊÇÌá½»µÄÊÇnullÖµ£¬ÔË ......
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);
......
AJAX¼¼ÊõÓ¦ÓÃÏê½â ÊÕ²Ø
AJAXÊÇAsynchronous JavaScript and XML µÄËõд¡£Ëü²¢²»ÊÇÒ»ÃÅеÄÓïÑÔ»ò¼¼Êõ£¬Ëüʵ¼ÊÉÏÊǼ¸Ïî¼¼Êõ°´Ò»¶¨µÄ·½Ê½×éºÏÔÚÒ»ÔÚͬ¹²µÄÐ×÷Öз¢»Ó¸÷×ÔµÄ×÷Óã¬Ëü°üÀ¨:ʹÓÃXHTMLºÍCSS±ê×¼»¯³ÊÏÖ;ʹÓÃDOMʵÏÖ¶¯Ì¬ÏÔʾºÍ½»»¥;ʹÓÃXMLºÍXSLT½øÐÐÊý¾Ý½»»»Óë´¦Àí;ʹÓÃXMLHttpRequest½øÐÐÒì²½Êý¾Ý¶ÁÈ¡;×î ......