Я немного новичок в Ajax и надеюсь, что вы все можете подсказать, какой из этих двух методов наиболее эффективен. Кажется, что оба подхода работают, но, может быть, есть какой-то лучший способ?
thisPage.html хочет отобразить двоичный объект html, извлеченный из файла thatPage.html (на том же хосте) в ответ на щелчок по ссылке. Я использую html-плеер Shadowbox для отображения большого двоичного объекта и использую 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
});
});
};
Но потом я подумал, что вместо загрузки thisPage thatPage при каждом вызове loadEntry я бы просто вызывал его один раз при загрузке 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