关闭

prototype ajax包的一个问题.

281人阅读 评论(0) 收藏 举报

在prototype手册中,关于 ajax.request 有这样 几个例子

 

 

A basic example

 

URL 
= 'http://www.google.com/search?q=Prototype';

new Ajax.Request('/proxy?url=' + encodeURIComponent(URL), {

  method: 
'get',

  onSuccess: 
function(transport) {

    
var notice = $('notice');

    
if (transport.responseText.match(/<a class=l href="http://prototypejs.org/))

      notice.update('Yeah!  You are in the Top 10!').setStyle({ background: '#dfd' });

    else

      notice.update('Damn!  You are beyond #10...').setStyle({ background: '#fdd' });

  }

});

 

 

 

Way too many people use Ajax.Requester in a similar manner to raw XHR, defining only an onComplete callback even when they're only interested in "successful" responses, thereby testing it by hand:

 

// This is too bad, there
's better!

new Ajax.Requester('/your/url'{

  onComplete: 
function(transport) {

    
if (200 == transport.status)

      
// yada yada yada

  }


}
);

 

First, as described below, you could use better 
"success" detection: success is generally defined, HTTP-wise, as either no response status or a "2xy" response status (e.g., 201 is a success, too). See the example below.

 

Second, you could dispense 
with status testing altogether! Prototype adds callbacks specific to success and failure, which we listed above. Here's what you could do if you're only interested in success, for instance:

 

new Ajax.Requester('/your/url'{

  onSuccess: 
function(transport) {

      
// yada yada yada

  }


}
);

 

可以看出在后段中

new Ajax.Requester('/your/url', { 

这里多了一个er 应为笔误.

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8626次
    • 积分:166
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条