[JS Applications] HTML за SPA


2

Как е правилно да се работи с HTML когато се прави SPA (на изпита):

a) HTML-a се генерира изцяло с JavaScript(jQuery);

 $('#main').append('<form>..... </form>'); 

б) Зареждат се HTML partial-и и се допълват с JavaScipt(jQuery);

 $('#main').load('partials/form.html');




Отговори



0

Здрасти колега.

Според мен трябва да се прави по втория начин, а именно да се зареждат отделно, защото иначе бихме имали доста непрегледен код. Когато започнеш да пишеш доста големи количества html посредата на кода където го зареждаш. По-добре html-а да си е на друго място, а когато ти трябва да си го зареждаш в някоя jquery променлива примерно:

$('<div/>).load('partials/form.html);

След това можеш да си работиш с тази променлива както би работил попринцип. Ако не искаш да имаш излишен div само за да пазиш заредения html, можеш да направиш jquery фрагмент по ТОЗИ начин.


от Plamen_Petkov (1255 точки)


1
Има и вариант с template engine(Handlebars или Mustache), както може би ще ни се наложи на изпита, за да попълним изтеглените данни от сървъра в шаблон и да го закачим

от m.tonkov (161 точки)


0
И според мен по-правилният вариянт е с template engine-и... В лекцията от миналата година JavaScript Libraries за Sammy.js ( https://www.youtube.com/watch?v=AHkR5YjkSLU ) Дончо обяснява демото, в което се използва Mustache.


0
И според мен това ще е най-удачния вариант. Ако имаме много повтаряемост(както са Open game services, Active game services от миналогодишния изпит) и на идея нямаме колко div, tr или каквото там ще ни трябват. Няма как да използваме load на предварително зададен html файл. От друга страна, както казва колегата Пламен Петков, ще е доста непригледно да въртим някакви цикли и да генерираме кода динамично и за това използването на template е просто идеалния вариант. Разбира се, ако става на въпрос за нещо статично(като login страницата или register) и load, и генериране на 2-3 input-a и 1 button вършат чудесна работа :)

от penjurov (1466 точки)


0
А според вас, кой е най-добрия начин да зареждаме teplate partials? Отново с load na jQuery? Няма ли да се получи проблем, при условие, че load е асинхронени е възможно да не се заради навреме?
Иска ми се да не пиша всичко в index.html, а в отделни файлове за това питам.

от ktsarnakliyski (1115 точки)


0
С $.get(app/chat/chat-view.html) става.

от kratoz333 (686 точки)

0
Е то load е просто по-generic get :)

от ktsarnakliyski (1115 точки)