大佬教程收集整理的这篇文章主要介绍了你能解释为什么这个jQuery代码有效吗?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
$("#vehicle_application_product_id").autocomplete({ minLength: 2,source: function(request,responsE) { var term = request.term; if (term in cachE) { response(cache[term]); return; } lastXhr = $.getJSON("/products/get_json_list",request,function(data,status,xhr) { cache[term] = data; if (xhr === lastXhr) { response(data); } }); } });
我就像一个脚本小家伙,有一些这样的东西.我自己永远不能写这个匿名函数,原因如下:
1)这个人怎么知道把参数“请求”和“响应”放在规范中?
2)以“lastXhr =”开头的行真的很神秘.最后还有另一个匿名函数.我意识到这可能是一个回调,这是在请求发送到指定的URL之后执行的.
if ( xhr === lastXhr ) { response( data ); }
那是什么呀?如果那么来自这个匿名块的第三个参数xhr等于.getJSON调用返回的vaue调用此匿名块,返回响应中的数据?
这真的是最困难的部分.我注意到3等于标志.这看起来像是非常先进的代码概念,我只是欣赏这背后的理由是为了让我能够成为一个更好的编码器.
if (the request that completed is the last request madE) { // ... }
为什么这样?如果由于响应时间太长而无法返回且用户输入速度过快,请确保您不对请求的结果执行操作,因此您有多个未完成的请求.在这种情况下,你真的对你所做的最后一个的结果不感兴趣.
回调如何从外部作用域访问变量lastXhr?这是由于closure.
>这三个等号是什么?那是identity operator.
以上是大佬教程为你收集整理的你能解释为什么这个jQuery代码有效吗?全部内容,希望文章能够帮你解决你能解释为什么这个jQuery代码有效吗?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。