отображение тени в виде html, нарисованного с другой страницы через jQuery.get () - PullRequest
1 голос
/ 11 февраля 2010

Я немного новичок в 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

1 Ответ

0 голосов
/ 11 февраля 2010

Ваш второй подход определенно более эффективен. Не зная больше о том, какую проблему вы на самом деле пытаетесь решить, загружая информацию с одной страницы на другую, я не могу найти лучшего решения, хотя я не могу представить ни одного случая, когда то, что вы делаете, было бы неуместным решением.

...