【问题标题】:jQuery load with variable, and split into 2 parts?jQuery 加载变量,并分成两部分?
【发布时间】:2010-10-28 14:13:09
【问题描述】:

我正在寻找一种提高代码性能的方法。目前我正在做类似的事情:

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

但是,这意味着我必须发出 2 个 GET 请求。有什么方法可以通过执行以下操作将其减少到 1 个请求:

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

干杯!

【问题讨论】:

    标签: javascript jquery jquery-load


    【解决方案1】:

    试试这个:

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

    顺便说一句:您可能需要在您的部分周围添加一个 holder-element,因为在我的示例中,dom 包含您的<body> 标记内容的第一层,而find 在第一层找不到任何内容:

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

    【讨论】:

    • 嗯,它只是返回空白:S
    • 我在答案中添加了一个用例示例,看看这是否有效
    【解决方案2】:

    你能改用 JSON 吗?

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

    这比执行常规获取和遍历结果要快,尽管您需要对来自服务器的响应进行编码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-08
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多