ÍæÍæAJAX֮ʹÓÃashxÎļþÏìÓ¦À´×ÔJQueryµÄJSONÇëÇó(ת)
ashxÎļþÊÇ.net 2.0мӵÄÎļþÀàÐÍ(ÆäʵÔÚ.net 1.0ÏÂÒѾ¿ÉÓÃ,µ«ÊÇûÓй«¿ªÌṩ).
ashxÎļþºÍaspxÎļþÓÐʲô²»Í¬? ÎÒÃÇÏÈн¨Ò»¸öashxÎļþ¿´¿´:
ashx
<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Web;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");
}
public bool IsReusable {
get {
return false;
}
}
}
¿´,±Èaspx¼ò½à¶àÁ˰É.Ö»ÓÐÒ»¸öÎļþ,ûÓкǫ́csÎļþ(»ùÓÚ´úÂ밲ȫ¿¼ÂÇ,ºó±ßÎÒÃÇ»á×Ô¼ºÌí¼ÓÕâ¸öÎļþ).ashx¶Ô±ÈaspxÎļþ,¾ÍºÃÏñÉÙÁËcsÎļþ.ÆäʵÕâ¾ÍÊÇashxºÍaspx²»Í¬µÄµØ·½,ÒòΪaspxÒª½«Ç°ºǫ́ÏÔʾºÍ´¦ÀíÂß¼·Ö¿ª,ËùÒÔ¾ÍŪ³ÉÁËÁ½¸öÎļþ,Æäʵ,ÔÚ×îÖÕ±àÒëµÄʱºò,aspxºÍcs»¹ÊÇ»á±àÒ뵽ͬһ¸öÀàÖÐÈ¥.ÕâÖмä¾ÍÒªÉè¼ÆhtmlµÄһЩÂß¼´¦Àí.¶øashx²»Í¬,ËüÖ»ÊǼòµ¥µÄ¶Ôweb httpÇëÇóµÄÖ±½Ó·µ»ØÄãÏëÒª·µ»ØµÄ½á¹û.±ÈaspxÉÙ´¦ÀíÁËhtmlµÄ¹ý³Ì.ÀíÂÛÉÏ,±ÈaspxÒª¿ì.
¿´¿´.net configÎļþÖжÔÁ½¸öÎļþÀàÐÍÇëÇóµÄÅäÖðÉ
configÉèÖÃ
<add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True" />
<add path="*.ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory" validate="True" />
¿ÉÒÔ¿´µ½Á½¸öÎļþ´¦ÀíµÄÀ಻һÑù(ashx´¦ÀíµÄÀà½ÐSimpleHandleFactory,¼ÈÈ»½ÐSimple,Ó¦¸Ã´¦Àí¹ý³ÌÒ²±È½ÏSimple.ÏìÓ¦ËÙ¶ÈÒ²Ó¦¸Ã¿ìµã°É:)
Ö»Òª¾ßÌå¼Ì³ÐÁËIHttpHandlerÈçºÎ´¦ÀíµÄÎÊÌâ,ÎÒÕâÀïÕÒµ½Ò»ÆªÔçÆÚµÄ,½éÉÜ.net 2.0±àÒëÄ£Ð͵ÄÎÊÌâ.±È½ÏÉî°Â,ÒªÂýÂý¹Äµ·Ò»ÏÂ:
µã»÷ÏÂÔØÎÄÕÂ
¹Äµ·ÍêÁËÄã¾Í´ó¸ÅÃ÷°×ÁËashx²»¹ý.netÀïÃæ×Ô¶¨ÒåºÃµÄÒ»¸öÇëÇó¸ñʽ,ashxÎļþÀàµÄÎļþµÄ´¦Àí¹ý³ÌÒª±ÈaspxÒª¼òµ¥µÃ¶à.
²»ËµÕâЩ¶«Î÷ÁË.˵»áÔõôÀûÓÃashxÎļþÀ´ÊµÏÖÎÒÃǵÄAJAXÇëÇó°É(ÆäʵʵÏÖºÍJQueryºÍJSON¹ØÏµ²»´ó)
¿´¿´JS´úÂë:
JS
function getSecondaryContent(menuId){
$.getJSON("Article/FreshNews.ashx", function(data) {
var txt = "<ul class=\"news\">";
$.each(data,function(i,n){
if(n.Url == "#")
txt += "<li><a href=\"#\" onclick=\"articleTitle_onclick('"+ n.ArticleId +"')\">"+ n.Ti
Ïà¹ØÎĵµ£º
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>¼òµ¥µÄÓ¦ÓÃXMLHt ......
1¡¢ajax¼¼ÊõµÄ±³¾°
²»¿É·ñÈÏ£¬ajax¼¼ÊõµÄÁ÷ÐеÃÒæÓÚgoogleµÄ´óÁ¦Íƹ㣬ÕýÊÇÓÉÓÚgoogle earth¡¢google suggestÒÔ¼°gmailµÈ¶Ôajax¼¼ÊõµÄ¹ã·ºÓ¦Ó㬴ßÉúÁËajaxµÄÁ÷ÐС£¶øÕâÒ²ÈÃ΢Èí¸Ðµ½ÎޱȵÄÞÏÞΣ¬ÒòΪÔçÔÚ97Ä꣬΢Èí±ãÒѾ·¢Ã÷ÁËajaxÖеĹؼü¼¼Êõ£¬²¢ÇÒÔÚ99ÄêIE5ÍÆ³ö֮ʱ£¬Ëü±ã¿ªÊ¼Ö§³ÖXmlH ......
# 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¡£
......
Ajax µÄ¸ÅÄ
AjaxÌá³öÕßJesse James GarrettÔÚ¡¶Ajax:Ò»¸öWebÓ¦ÓõÄÐÂ;¾¶¡·ÖÐÌáµ½AjaxΪ“Asynchronous JavaScript + XML”µÄ¼ò³Æ£¬Ò²¾ÍÊÇÒì²½µÄJavaScriptºÍXML´¦Àí¡£
ÆäÖаüº¬£º
ÓÃXHTMLºÍCSS½øÐлùÓÚ±ê×¼µÄ±íʾ·½Ê½£º
¡¡¡¡²ÉÓÃDOM(document object model)¶¯Ì ......