JS 框架使用及迁移(三)-Ajax调用改造

[size=large]ajax 改造及其他
在现在的前端应用中,ajax 调用是相当重要的一环。在 ajax 的调用上。不过还是有一些值得注意并加以分辨的地方。
先看两段代码:
第一段 Prototype:

document.observe('dom:loaded', function(){
$("btnok").observe('click', function(){
clickButton();
});
});

function clickButton() {
var url = '/user/info.php';
var pars = "uid=1&r="+Math.random();
var ajax = new Ajax.Request(url,{
method:'get',
parameters:pars,
onSuccess:function(data)
{
callbackfunc(data);
},
});
}
function callbackfunc(data)
{
console.log(data.responseText.evalJSON());
alert("SUCCESS");
}


第二段:jQuery

$j(document).ready(function(){
$j("#btnok").click(function(){
clickButton();
});
});

function clickButton() {
$j.ajax({
url:'/user/info.php',
data:{uid:2, r:Math.random()},
type:'get',
success:function(json){
callbackfunc(json);
},
dataType:'json'
});

}
function callbackfunc(data)
{
console.log(data);
alert("SUCCESS");
}


这两段代码,分别演示了 Prototype 和 jQuery 中的ajax 的 get 调用。从代码上,可以看出,两段代码大同小异。
都分别有 url, 参数,回调函数等。光从这两段上,还看不出 jQuery 的优势,从个人的经验来看,就是用习惯了 jQuery 之后, new Ajax.Request 这样的调用,很容易忘记。而习惯在 Prototype 中也写成 Ajax.Request。
事实上,jQuery 为我们提供了更为简便的方法,比如上面的 clickButton 函数,可能简单地改造为:
var url = '/user/info.php';
var params = {
uid:1,
r:Math.random()
};
$j.get(url,params,callbackfunc,'json');


甚至写成一行就可以了。
$j.get('/user/info.php', {uid:1, r:Math.random}, callbackfunc, 'json');

同理,也提供了 $j.post 方法。
这是多么地精巧啊。

在其他的应用中,始终要明确的是,由于 jQuery 对选择器取回来的对象进行了封装,
所以取属性时,设置属性时都得用 attr 方法,如果忘记了这点,直接调用原生属性 ,也不会出错,就是出不来结果。
而 Prototype 取回来的对象,直接调用原生的属性就成了。比如设置照片的 src 。
jQuery :
$j("#img").attr("src", url);

Prototype:
$("img").src = url;

[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值