За последние 24 часа нас посетил 22391 программист и 1169 роботов. Сейчас ищут 686 программистов ...

Зачем нужен JavaScript?

Тема в разделе "Прочее", создана пользователем alexphp, 16 дек 2019.

Метки:
  1. alexphp

    alexphp Активный пользователь

    С нами с:
    5 дек 2019
    Сообщения:
    98
    Симпатии:
    12
    PHP обрабатывается на сервере. JavaScript обрабатывается у клиента. Возникает вопрос: не дублируют ли они потенциально друг друга? В том смысле, что сервер вполне способен сделать то же самое, что клиент. И, кстати, с гораздо большей безопасностью, так как человеку, сидящему на компьютере-клиенте, по понятным причинам гораздо труднее получить управление сервером, чем управление своим собственным компьютером.
    Отсюда и вопрос в заголовке темы: зачем нужен JavaScript? Есть ли хоть что-нибудь в JavaScript, чего не способен сделать PHP?!
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Интерактивность
    --- Добавлено ---
    Я тоже олдфаг и раньше считал, что дублирование функций это зло. Типа зачем валидация на клиенте, если на сервере она полюбому должна быть. Сейчас я стал мягче ))) Пользователь сейчас балованый и нервничает если ошибка показывается только после ввода и отправки большой формы. Пользователь ожидает немедленной реакции. Ну и плюс реактивность, когда изменение состояния в одном элементе вызывает немедленную перестройку на странице, это задача для JS.
    Многие действия можно и нужно реализовать на CSS, но прям всё не получится.
     
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    Суть в чем
    PHP отработал - выдал на выходе html страничку все
    JS - работает в браузере постоянно, работает с событиями браузра, с действиями пользователя, с внутренними механизмами (например таймер)

    К вопросу что может, а что нет JS - таймер может запустить, отследить клик по кнопке, нажатие на клавиши, выделение, перетаскивание
    отправить запрос к бекэнду на PHP получить результат, показать его

    Если б было все на PHP, любое бы действие для обратной связи требовало бы нажатие ссылки или кнопки sumbit для перехода или отправки формы, обработке на стороне сервера и показе новой страницы.... как вам такой интернет?
     
    Roman __construct нравится это.
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Лет пятнадцать назад всё так и было. При том, что скоростных каналов не было и все сидели на модемах 2400 - 14400 кбит/с
    --- Добавлено ---
    Вопрос ТСа, "зачем так, когда можно и не так." Ну да, раз было, значит можно. Только не нужно.
     
  5. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Можно спросить и наоборот: зачем нужен PHP, если есть JavaScript? Есть ли хоть что-нибудь в PHP, чего не способен сделать JS?!
    Особенно, учитывая что он может работать как на клиенте так и на сервере :)
     
    artoodetoo и Roman __construct нравится это.
  6. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Есть :)

    JavaScript встроен в браузер и может выполняться на стороне клиента, а PHP - нет :)
    --- Добавлено ---
    Вот да, резонная постановка вопроса :)

    Здесь на стороне PHP - ее огромная экосфера. У Node такой нет и не предвидится ))
    --- Добавлено ---
    ...к тому же асинхронность - это очень на любителя и специфическое.

    То есть способность запускать много процессов на каждый запрос (за которую иногда ругают апач) - это вовсе не Зло - а большое благо - особенно если речь идет о тяжелых запросах к бд или типа того.
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Если бы для серверного JS появился по настоящему годный малобажный фреймворк, он бы составил конкуренцию PHP. Но беда (или счастье) в том, что все популярные компоненты JS это бомбы, начинённые нестабильным говном.
    --- Добавлено ---
    Это не моё мнение, я подслушал его в подкастах по JS.
     
  8. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    typescript ребятушки, уже давно придуман =)
     
  9. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    один большой мега фреймворк просто ненужен. идеология другая.
     
  10. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    И как TS решит проблему вменямых фреймворков для ноды?
    --- Добавлено ---
    Ну, на фронте есть angular, есть nuxt, next и другие, которые покрывают почти весь спектр необходимых вещей. Для сервера такого нет, кроме ряда огрызков, которые толком ничего и не делают.
     
  11. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    для сервера express
     
  12. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    это и имелось в виду под "огрызком" :D

    express - это ведь, по сути, ОДНА-БОЛЬШАЯ-МИДДЛВАРЬ :D

    сравнивать ее с Laravel, например, вообще нереально
     
  13. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Мне это интервью нравится
     
  14. lastdays

    lastdays Активный пользователь

    С нами с:
    27 сен 2012
    Сообщения:
    410
    Симпатии:
    74
    В чем-то дублируют, конечно.. Как без этого ? Постоянно пишем одно и тоже.. по сути.
    выше правильно подметили, зачем клиента заставлять обновлять и вводить данные по-новой, когда красиво сообщить об ошибке.

    С другой стороны, хочешь красиво оформить что-либо, сделать функциональнее и удобнее, тогда и используй js .
    Окошечко с подтверждением к примеру.
     
  15. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    ...чето вернуло в тему...

    О чем тут вообще можно говорить, коли AJAX без JS не сделаешь?

    А какой сейчас сайт без аякса?
     
  16. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    учитывая что роль сервера сводится к обработке REST запросов, чего на сервере нехватает? для запросов и сопутствующего экспресс(сессии, RBAC...), работа с различными БД, мемкешами, очередями, пулами, шифрованием есть. чтото нестандартное добавляется компонентами ибо они существуют на любой чих... для любителей фреймворков и они есть.


    не самое лучшее что можно было, много херни говорит.
     
  17. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Да я ничего не говорю-то - мне экспресс тож нра))) простой, быстрый.
     
  18. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Ну, к примеру, я хочу что бы из коробки я мог с одной стороны сделать систему доступа на основе ролей / разрешений, а с другой - enpoint должен отдавать разный формат данных для, опять же, разных ролей и разрешений. К примеру, /users для пользователя вернет только его и тех кого он добавил сам, /users для администратора вернет все записи с дополнительными полями и т.д. Ларка позволяет мне сделать это нативно в рамках фреймворка, expressjs - только костылить вокруг middleware, да и вообще, она почти ничего не дает поверх нативных нодовских модулей и при прочих равных я скорее просто возьму их, чем ставить то, что непонятно вообще зачем нужно.
     
    Roman __construct нравится это.