我对 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