相关疑难解决方法(0)

使用匿名函数会影响性能吗?

我一直想知道,在Javascript中使用命名函数和匿名函数之间是否存在性能差异?

for (var i = 0; i < 1000; ++i) {
    myObjects[i].onMyEvent = function() {
        // do something
    };
}
Run Code Online (Sandbox Code Playgroud)

VS

function myEventHandler() {
    // do something
}

for (var i = 0; i < 1000; ++i) {
    myObjects[i].onMyEvent = myEventHandler;
}
Run Code Online (Sandbox Code Playgroud)

第一个是更整洁,因为它不会使用很少使用的函数使代码混乱,但重要的是你多次重新声明该函数是否重要?

javascript optimization performance

82
推荐指数
2
解决办法
2万
查看次数

jQuery如何?将附加参数传递给$ .ajax调用的成功回调?

我似乎是徒劳无功地将其他参数传递回我为成功的ajax调用创建的成功回调方法.一点背景.我有一个页面,其中包含许多动态创建的文本框/选择框对.每对具有动态分配的唯一名称,例如name ="unique-pair-1_txt-url"和name ="unique-pair-1_selectBox",则第二对具有相同但前缀不同.

为了重用代码,我制作了回调来获取数据和对selectbox的引用.但是当回调被触发时,对selectbox的引用将返回为"undefined".我在这里读到它应该是可行的.我甚至尝试过利用'上下文'选项,但仍然没有.这是我尝试使用的脚本块:

<script type="text/javascript" language="javascript">
$j = jQuery.noConflict();
function getImages(urlValue, selectBox) {
    $j.ajax({
        type: "GET",
        url: $j(urlValue).val(),
        dataType: "jsonp",
        context: selectBox,
        success:function(data){
         loadImagesInSelect(data)
        } ,
        error:function (xhr, ajaxOptions, thrownError) {
            alert(xhr.status);
            alert(thrownError);
        }

    });
}

function loadImagesInSelect(data) {
var select = $j(this);
select.empty();
$j(data).each(function() {
    var theValue = $j(this)[0]["@value"];
    var theId = $j(this)[0]["@name"];
    select.append("<option value='" + theId + "'>" + theValue + "</option>");
});
select.children(":first").attr("selected", true);

}    
</script>
Run Code Online (Sandbox Code Playgroud)

从我所读到的,我觉得我很接近,但我不能把手指放在缺失的环节上.请帮助你典型的忍者隐身方式.TIA

****更新****尼克是一个真正的忍者.他们应该为此发明一个新的徽章!他下面的回答就是诀窍.正如他提到的那样具体是1.4,但我可以忍受.这是我的最终代码,适用于任何Ninjas的培训(以及我未来的参考):

<script type="text/javascript" language="javascript">
$j = jQuery.noConflict(); …
Run Code Online (Sandbox Code Playgroud)

jquery jquery-callback

18
推荐指数
3
解决办法
5万
查看次数

通过ajax请求将数据传递给回调函数

是否可以通过Ajax请求将数据传递给没有全局变量的回调函数?

例如,这个请求函数应该通过回调函数传递passData,该回调函数也应该获得正常的响应数据?

function rquest(callback, passData){
    $.ajax({
         type: "POST",
         url: someURL,
         success: callback(passData)
    });
};  

function myCallback(data, passData){
    var responseData = data;
    var SomeOtherData = passData
    //do Something
};

rquest(myCallback, "Hello World");
Run Code Online (Sandbox Code Playgroud)

因此,“ Hello World”应该位于passData中,数据应该是服务器的正常响应...如果我这样做,则数据为“ Hello World”并且passData是未定义的。

javascript ajax jquery request

1
推荐指数
1
解决办法
3304
查看次数