Когда использовать JavaScript в PHP (а когда нет)?

0

У меня есть опыт программирования php и javascript (/jquery), и я только начал изучать Joomla и MVC.

Кодированные компоненты MVC управляются bij пользовательскими действиями, но так же много javascript-программ типа (например, те, кто использует кнопки, выбирают меню и т.д.). Когда нужно использовать шаблоны mvc и когда нужно использовать javascript?

Второй вопрос: есть ли у кого-нибудь пример простого кода, который демонстрирует интеграцию кода jquery в php (файл просмотра)? (Я надеялся найти это в http://docs.joomla.org/Adding_JavaScript...)

  • 1
    это отдельные проблемы, которые делают разные вещи. ваш php задняя сторона, а ваш javascript лицевая сторона. так что между ними определенно существует кодовая граница. Как только php отобразит эту страницу, это будет сделано.
  • 0
    Спасибо за ответ; Однако я все еще в замешательстве. Давайте рассмотрим конкретный пример, где веб-страница должна показывать разные формы при выборе различных пунктов меню, отображаемых с помощью трех кнопок; Я мог бы кодировать двумя способами (a, b): (a) стиль MVC: нажатием кнопки активируется контроллер, который генерирует соответствующую форму; (б) посредством нажатия кнопки вызывается функция javascript, которая генерирует форму. Вариант b все еще соответствует принципам кодирования mvc? Какой вариант предпочтительнее?
Показать ещё 2 комментария
Теги:
joomla

2 ответа

0
Лучший ответ

Из вашего комментария кажется, что вы хотите знать, когда использовать Javascript и когда не использовать Javascript.

Это очень субъективный вопрос. Лично я считаю, что вы не должны полагаться на javascript для функциональности, если у вас нет веских оснований для этого (например, проблемы с производительностью), поскольку он ограничивает доступность и плохо для SEO. См. Также эти два сообщения.

Что касается вашего примера: в настоящее время MVC - своего рода суетливый термин. Но в варианте b есть только одна функция Javascript, которая обрабатывает все. Таким образом, вы не разделяете Model, View и Controller, поэтому его нельзя назвать MVC. И к какому варианту предпочтение: это вопрос вкуса. Я бы предпочел вариант a, потому что, если вы хотите, чтобы ваш сайт был доступен, вам пришлось бы закодировать резервную копию для опции b, которая кажется большой ненужной работой. Единственным недостатком является то, что у вас есть лишний дополнительный запрос на сервер.

И что касается вашего второго вопроса: вы не интегрируете Javascript в php. Php выполняется на стороне сервера (а затем обычно возвращает сгенерированную страницу html пользователю), в то время как Javascript выполняется на стороне клиента (и может, например, изменить код html, который пользователь получил).

  • 0
    Спасибо Тим. Предложенный принцип кодирования предпочитает mvc выше javascript, чтобы иметь дело с клиентами с отключенным javascript, имеет смысл. Просто интересно, кодируешь ли ты все в стиле mvc по сравнению с js / jquery? Например, веб-страница с выпадающим меню (<select> </ select>), которая создает конкретную форму в зависимости от выбранного параметра в меню выбора. Единственный способ реализовать это - создать кнопки / URL-ссылки для каждого из вариантов выбора вместо выпадающего меню выбора (?).
  • 0
    @ Джоппо: да, я бы так и сделал (создав многостраничную форму). Но я все равно использовал бы выпадающее меню, отправлял выбранное значение на сервер и затем возвращал соответствующую форму. Но опять же, это вопрос предпочтений. Вы можете сделать это с JS, и просто убедитесь, что, например. все возможные формы по-прежнему отображаются для пользователей без JS.
0

Я не эксперт MVC. Хотя из того, что я читал, выбор Javascript или PHP не имеет большого значения (сам по себе) относительно того, следуете ли вы по стилю MVC. Тем не менее, вам все же необходимо соблюдать различия между серверной (PHP) и клиентской стороной (JS/jQuery), чтобы заставить работу работать последовательно.

Для большинства сайтов вы будете работать по принципу, что Javascript будет использоваться только для того, что серверный код не может сделать. Обычно я стараюсь, чтобы все функционально работало, используя чисто серверный код. И я имею в виду, что ни один пользователь не потерпит неудачу при выполнении чего-то существенного, если у них нет Javascript, или если он недоступен. Затем я добавляю Javascript сверху для звонков и свистов. У меня есть Javascript, который также обрабатывает важные функции, но только тогда, когда мой PHP-код уже может сделать их как резерв.

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

jQuery/PHP может выглядеть примерно так:

$('.elem').click(function(){
    $(this).val('<? echo $phpvar; ?>')
});

Является ли это "интеграцией" для семантических дебатов. У вас может быть JS-код вывода PHP, включая данные для назначения его параметрам, как указано выше, но это касается того, что JS и PHP могут быть созданы для совместной игры. На самом деле, правда, PHP запускается, а затем запускается Javascript, используя любой материал JS, который, возможно, имел выход PHP. Обратите внимание, что это можно сделать, как правило, только на странице.PHP с кодом Javascript в тегах <script>, а не на.JS-страницах.

  • 0
    Спасибо за ваше объяснение, это многое проясняет мне (!). Еще один вопрос: вы писали: «когда на клиенте не доступно выполнение Javascript, данные должны загружаться при загрузке новой страницы», за которым следует пример кода jQuery / PHP. Я предполагаю, что пример кода относится к сценарию, что выполнение Javascript доступно на клиенте?
  • 0
    @ Джоппо: Нет проблем. Да, пример кода будет работать, только если на клиенте доступно выполнение Javascript. Однако, чтобы уточнить, этот пример кода был просто общим примером jQuery / PHP и не имел особого отношения к загрузке новых страниц.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню