2015-04-29 4 views
0

Я работаю над проектом, где у него есть несколько страниц. Каждая страница отображает 10 строк, где макет, который используется для каждой страницы, отличается. До сих пор у меня был html-код каждой строки в javascript-коде и на основе URL-адреса страницы я использовал соответствующий html-код (if statement). Оператор if находится внутри цикла, который циклически основан на количестве строк. Результаты строк исходят из метода ajax. Теперь я хочу как-то отделить его, чтобы мне было легче поддерживать его, в основном, чтобы удалить html-код из javascript и сохранить html-код каждой строки в другой файл.Можно ли вернуть html-код в jquery?

Примечание: Ajax в заданное время отправляет автоматически запросы в файл php для любых новых строк.

Одним из решений, которое я выбрал, является то, что я могу использовать php для создания переменной с кодом html.

Второе решение заключается в создании массива каждой записи с помощью html-кода, а затем передать его в jquery для его печати.

Оба решения Я не знаю, являются ли хорошие решения и может помочь мне сохранить проект в будущем.

+0

Итак, суммируя, у вас есть HTML-шаблоны в вашем JS-коде (хранятся в строках). Теперь вы хотите динамически загружать HTML-шаблоны из других файлов (особенно файлов PHP). Правильно ли я вас понимаю? – suvroc

+0

Я думаю, вам нужно создать веб-сервис в php, который вернет вам строку. Это простой и динамичный подход. Поэтому, если сайт жив, и вы хотите внести изменения, вы можете сделать это, используя базу данных в конце. – Codelord

+0

@suvroc да, вы правы, я смотрю что-то вроде функции шаблонов –

ответ

1

Вы можете рассмотреть библиотеку шаблонов, такую ​​как рули, чтобы помочь с шаблонами. Такие решения, как AngularJS и Ember, также преуспевают в решении этих проблем.

API веб-служб должен возвращать JSON, хотя и не фрагменты HTML. Пусть клиент построит DOM и позволит серверу сосредоточиться на данных.

+0

, что относительно mustache.js? –

1

Вы должны вернуть структурированные данные (см., Например, JSON), на ваш запрос AJAX. Таким образом, вы можете поддерживать несколько интерфейсов (например, веб-сайт, приложение): каждый интерфейс будет получать только данные и будет обрабатывать рендеринг по мере необходимости.

В вашем примере вы запрашиваете данные через запрос AJAX, ваш сервер отвечает на JSON-структурированный ответ. JQuery читает его и преобразует его в массив javascript благодаря jQuery.getJSON. С помощью вашего массива вы просматриваете каждый элемент и вставляете элементы html в веб-страницу.

+0

GHugo это то, что я делаю сейчас, у меня есть оператор if с кодом html внутри цикла, который читает каждый элемент и создает переменную с html код. Проблема в том, что трудно поддерживать html-код, потому что требования меняются, поэтому я ищу лучший способ обработать метод рендеринга данных, которые поступают из запроса AJAX –

0

У вас есть два варианта: Если ваши HTML шаблоны не часто меняются, лучший способ определить шаблоны HTML в вашем HTML структуру с помощью некоторых Java Script библиотеки шаблонов (например Handlebars.) И заполнить его данными из AJAX (JSON).

Если ваши HTML-шаблоны часто меняются или зависят от некоторых условий (данных) в строке, вы должны создать частичные представления PHP, которые генерируют правильную структуру html, уже заполненную данными.

Для многих строк лучше создать целую серверную часть сервера для уменьшения запросов.

Смежные вопросы