2014-01-11 3 views
0

Я сейчас гружу эту страницу 3 раз (а) с помощью 3 различных звонков .load(). Я хочу знать, есть ли что-то, что я могу сделать для кода optimize.jQuery load 3 divs с одной страницы

Когда я нажимаю ссылку в настоящее время она загружает страницу в 3 раза

$("#"+target).load(url + " #page", function(response, status, xhr){ 
    if(status === "error") 
    { 
    $("#"+target).load('error.php?error=503 #page', function(response, status, xhr){ 
     if(status === "error") 
     { 
     alert("Something has gone very wrong right now, please contact an admin quoting 'error.php'"); 
     return; 
     } 
    }); // This should never fail but if it does kill the page 
    console.log('Content failed to load ' + xhr.status + ' ' + xhr.statusText); 

    //Force update the title to error 
    document.title = "Error"; 

    $("#pageBreadcrumbs").load('error.php #breadcrumbs'); 
    } 
    else 
    { 
    console.log('Content was loaded'); 
    //Load the title dynamically 
    document.title = "Venus | " + name; 
    $("#pageBreadcrumbs").load(url + ' #breadcrumbs'); 

    if(sidebar === true) 
     $("#pageSidebar").load(url + ' #sidebar'); 
    } 

Есть в любом случае я могу сократить это только один вызов на URL страницы или ошибки и извлечь его оттуда?

ответ

0

Вы можете использовать этот код:

$.get(url, function(response) { 
    var $nodes = $(response); 

    ... some conditions ... 

    var $container1 = $("#"+target).html(''); 
    $nodes.find('#page').appendTo($container1); 

    ... some conditions ... 

    var $container2 = $("#pageBreadcrumbs").html(''); 
    $nodes.find('#breadcrumbs').appendTo($container2); 
}); 

Я не совсем уверен, что это работает, но вы можете попробовать его ...

UPDATE

Этот код предполагает, что весь ответ сервера завернут в один контейнер (div)

+0

Загружаемые страницы отформатированы как '

' – user3161917

+0

Вы можете попробовать обернуть эти теги в один внешний' div' – Curious

Смежные вопросы