1

我对 Ajax 有点陌生,希望大家能建议这两种方法中哪一种最有效。这两种方法似乎都有效,但也许有更好的方法?

thisPage.html 想要显示从 thatPage.html(在同一主机上)提取的一个 html 块,以响应对链接的单击。我正在使用 Shadowbox 的 html 播放器来显示 blob,并且我正在使用 jQuery 的 get() 作为 XMLHttpRequest 的快捷方式。

在我的第一个解决方案中,thisPage.js 包含这个函数:

function loadEntry(entry){
  jQuery.get('thatPage.html', function(data){
    var elem = document.createElement("div");
    elem.innerHTML = "<div class='entry-to-show'>" + jQuery(data).find("a[name='" + entry + "']").parent().parent().html() + "</div>";

    Shadowbox.open({
      options: {
        enableKeys: false
      },
      player: 'html',
      content: elem.innerHTML
    });
  });
};

但是后来我想,不是每次调用 loadEntry 时都让 thisPage 加载 thatPage ,而是在加载 thisPage.js 时调用一次,将其包装为包含 jQuery 对象的变量并像这样访问它:

var $Content = null;

jQuery.get('thatPage.html', function(data){
  $Content = jQuery(data).find("#content");
});

function loadEntry(entry){

  elem = $Content.find("a[name='" + entry + "']").parent().parent().html();

  Shadowbox.open({
    options: {
      enableKeys: false
    },
    player: 'html',
    content: elem
  });
};

第二种方法实际上更有效,还是有其他方法更适合我正在尝试做的事情?欢迎任何建议或一般性意见。

谢谢,jjon

4

1 回答 1

0

您的第二种方法肯定更有效。如果不了解更多关于您通过将信息从一个页面加载到另一个页面来实际尝试解决的问题,我无法提供更好的解决方案,尽管我想不出您正在做的任何情况都是不合适的解决方案。

于 2010-02-10T22:33:40.650 回答