Pergunta

Estou procurando uma maneira de aumentar o desempenho do meu código. Atualmente eu faço algo semelhante a isso:

$(".div1").load("Page.aspx #section1");
$(".div2").load("Page.aspx #section2");

No entanto, isso significa que estou tendo que fazer 2 GET solicitações de. Existe alguma maneira de reduzir isso a 1 solicitação fazendo algo assim:

var content = $.load("Page.aspx");
$(".div1").html(content("#section1"));
$(".div2").html(content("#section2"));

Felicidades!

Foi útil?

Solução

Experimente isso:

$.get('Page.aspx', function(data) {
  var dom = $(data);
  $(".div1").html(dom.find("#section1"));
  $(".div2").html(dom.find("#section2"));
});

BTW: Provavelmente você precisará de um elemento de suporte em torno de suas seções, porque dom no meu exemplo, segura o primeiro diário do seu <body> tag conteúdo e find Não encontrará nada neste primeiro nível:

<body>
  <div id="holder">
    <div id="section1"></div>
    <div id="section2></div>
  </div>
</body>  

Outras dicas

Você pode mudar para usar o JSON?

$.getJSON('Page.aspx', function(data) {
    $(".div1").html(data.section1);
    $(".div2").html(data.section2);
});

Isso seria mais rápido do que fazer um GET regular e atravessar o resultado, embora você precise codificar sua resposta do servidor.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top