javascript超过超时

javascript超过超时,javascript,jquery,cordova,jquery-mobile,Javascript,Jquery,Cordova,Jquery Mobile,我使用jquery开发移动应用程序,下面是我的代码,当我在包含的页面中添加5行或6行代码时,问题就解决了。但如果我添加多行代码,则会显示错误消息:Javascript执行超时 function succes_recu_list_rubrique(tx, results) //apés avoire remplir sqlite { console.log('ENTRééééééééééééééé---') $('#lbtn').prepend("<legend>

我使用jquery开发移动应用程序,下面是我的代码,当我在包含的页面中添加5行或6行代码时,问题就解决了。但如果我添加多行代码,则会显示错误消息:Javascript执行超时

function succes_recu_list_rubrique(tx, results)   //apés avoire remplir sqlite
{
    console.log('ENTRééééééééééééééé---')

    $('#lbtn').prepend("<legend>Selectionner un Rubrique</legend><br>");
    for( var i=0; i<results.rows.length; i++  )            //Remplir tableau liste des identifiants étapes
    { 
    $('#lbtn').append("<input name='opt1' checked type='radio' value="+results.rows.item(i).IdRubrique+"    id="+results.rows.item(i).IdRubrique+" />");
    $('#lbtn').append('<label for='+results.rows.item(i).IdRubrique+'>'+results.rows.item(i).LibelleRubrique+'</label>');   
    }
    $('#lbtn').append('<a href="#page_dialog2"     class="offer2"      data-rel="dialog"    data-role="button" >Consulter</a>').trigger('create');
    $('#lbtn').append('<a href="#'+id_grp_rub+'"   data-role="button"             data-rel="back" data-theme="c" >Cancel</a> ').trigger('create');

}
function success_recu_list_rubrique(tx,results)//apÃs avoire remplir sqlite
{
console.log('ENTR俎俎俎俎俎俎俎俎--'))
$('#lbtn')。前缀(“Selectionner un Rubrique
”;
对于(var i=0;i很难知道,结果有多大? 但是您应该开始缓存jQuery对象,并尽量减少DOM插入

以下内容未经测试,但将为您指明正确的方向:

function succes_recu_list_rubrique(tx, results)   //apés avoire remplir sqlite
{
    console.log('ENTRééééééééééééééé---')

    var htmlToAppend = "";
    var $lbtn = $('#lbtn');

    htmlToAppend += "<legend>Selectionner un Rubrique</legend><br>";

    for( var i=0; i<results.rows.length; i++  )            //Remplir tableau liste des identifiants étapes
    { 
        htmlToAppend += "<input name='opt1' checked type='radio' value="+results.rows.item(i).IdRubrique+" id="+results.rows.item(i).IdRubrique+" />";
        htmlToAppend += "<label for='+results.rows.item(i).IdRubrique+'>'+results.rows.item(i).LibelleRubrique+'</label>";
    }
    $lbtn.append(htmlToAppend);

    $lbtn.append('<a href="#page_dialog2"     class="offer2"      data-rel="dialog"    data-role="button" >Consulter</a>').trigger('create');
    $lbtn.append('<a href="#'+id_grp_rub+'"   data-role="button"             data-rel="back" data-theme="c" >Cancel</a> ').trigger('create');

}
function success_recu_list_rubrique(tx,results)//apÃs avoire remplir sqlite
{
console.log('ENTR俎俎俎俎俎俎俎俎--'))
var htmlToAppend=“”;
变量$lbtn=$('lbtn');
htmlToAppend+=“选择不受限制的内容
”;
for(var i=0;i@soderslatt的方向正确。有关如何附加到未附加到DOM的元素(以及避免重新绘制和回流)的信息,请参阅然后将其附加到DOM中,只需支付一次罚款。下面的解决方案将解决您的问题。诀窍是使用setTimeout函数,在执行代码之前等待一毫秒。使用上述方法将允许您解锁线程并避免超时错误

示例:

function succes_recu_list_rubrique(tx, results) {

    var i = 0;

    function appendOperation() {
        $('#lbtn').append(
            [
                "<input name='opt1' checked type='radio' value=", results.rows.item(i).IdRubrique, " id=", results.rows.item(i).IdRubrique, " />",
                "<label for=", results.rows.item(i).IdRubrique, ">", results.rows.item(i).LibelleRubrique, "</label>"
            ].join("")
        );

        if (i++ < results.rows.length) {
            setTimeout(appendOperation, 1);
        } 
    }
    appendOperation();
}
功能成功\u重现\u列表\u rubrique(发送,结果){
var i=0;
函数appendOperation(){
$('#lbtn')。追加(
[
"",
“”,results.rows.item(i).libellerrubrique“
].join(“”)
);
if(i++
@user1866265对此有任何回应吗?a给了你一个答案,你试过了吗/它有效吗?results.row包含多少条目?是的,我试过你的答案,但有相同的错误。results.row contain=150你能提供更多关于你正在添加的“行”的信息吗?在哪里?