jQuery / Ajax – $ .ajax()传递参数callback – 良好的模式使用?
我开始的JavaScript代码:
function doSomething(url) { $.ajax({ type: "GET", url: url, dataType: "xml", success: rssToTarget }); }
我想用的模式:
//where elem is the target that should receive new items via DOM (appendChild) function doSomething(url, elem) { $.ajax({ type: "GET", url: url, dataType: "xml", success: rssToTarget(elem) }); }
我不认为我可以通过这种方式获得callback,对吗? 什么是正确的模式? 我不想使用全局variables来临时保存elem
或elem的名字。
喜欢这个…
function doSomething(url, elem) { $.ajax({ type: "GET", url: url, dataType: "xml", success: function(xml) { rssToTarget(xml, elem); } }); }
回答你的评论: 使用匿名函数是否会影响性能?
如果您在rssToTarget函数中创build一个闭包 ,您想要使用的模式可以工作:
function rssToTarget(element) { return function (xmlData) { // work with element and the data returned from the server } } function doSomething(url, elem) { $.ajax({ type: "GET", url: url, dataType: "xml", success: rssToTarget(elem) }); }
当rssToTarget(elem)
被执行时,元素参数被存储在闭包中 ,callback函数被返回,等待被执行。