Mechanizm pobierania templatek

0

Czesc,
Potrzebuje ladnej funkcji, a konkretnie obiektu ktory pobiera templatki z lokalnego pliku. Jako ze $.get jest asynchroniczny i musialbym robic callback w .done() to mi sie to bardzo nie podoba. Niestety nie omine tego, ale chcialbym "owrapowac" w ladna funkcje.

moj zamysl jest taki zeby:

    var popoverTemplate = ['<div class="tourpopover timePickerWrapper popover">',
        '<div class="arrow"></div>',
        '<div class="popover-content">',
        '</div>',
        '<a href="#" class="close"></a>',
        '<div class="tourFooter">',
        '<a class="tourbutton prevTourItem">Prev</a>',
        '<div class="tourSteps"><span class="current"></span>/<span class="length"></span></div>',
        '<a class="tourbutton nextTourItem">Next</a>',
        '</div>',
        '</div>'
    ].join('');

Zamienic na:

var popoverTemplate = getTemplates.popover();

var getTemplates = function(){

    var start = function(){
         /* tutaj wypelnienie funkcji, to czego mi brakuje */
     }

     var popover = function(){
         /* tutaj wypelnienie funkcji, to czego mi brakuje */
     }

     var end = function(){
         /* tutaj wypelnienie funkcji, to czego mi brakuje */
     }

    return {
          start : start,
          popover : popover,
          end: end
    }
}

Jak widac beda tez inne templatki. Pliki znajduja sie w './templates/*.html'.

Bez tej zmiennej nie moze ruszyc zadna czesc kodu. Czytalem ze $.ajax ma funkcje async. Czy to jej musialbym uzyc? A moze ma ktos pomysl jak wypelnic funkcje popover() zeby zwracala mi fajnie templatka.
W funkcji popover() dla mnie moze znaleŹĆ sie wszystko. Ale reszta kodu musi byc ladniejsza :)
ps. Nie chce uzywac requireJs. Do dyspozycji mam tylk JS i jQuery.

Dzieki za kazda sugestie.
Pozdrawiam

0

Z dokumentacji parametru async dla jQuery.ajax():

By default, all requests are sent asynchronously (i.e. this is set to true by default). If you need synchronous requests, set this option to false.

0

Bez callbacków się nie obejdzie, ale możesz to upiększyć przez promises/jq deferred.

async: false zawiesi kartę przeglądarki dopóki nie przyjdzie odpowiedź (wraz z odtwarzaniem animacji), także to najokropniejsze co możesz zrobić swojej aplikacji

0
Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/.

Wlasnie sie tak zastanawiam. To nie jest Aplikacja to jest plugin, kod pluginu to ok 200 - 300 lini. Do pobrania mam 3 templatki, po 20-30 linijek kazda.

Swoja droga jak taki promis mialby wygladac (nie jestem zabardzo doswiadczony w ich budowaniu).

var popoverTemplate = getTpls.popover().then(function(data){ return data; });

Takie cos mogloby nawet dobrze wygladac. Ale czy tak to sie robi?

1 użytkowników online, w tym zalogowanych: 0, gości: 1