Задать вопрос
  • Почему на клиенте используют js а не php?

    youngmysteriouslight
    @youngmysteriouslight
    ТК, ТТ, JS, FP, WM
    Может, я и не понял контекст вопроса, но не один из предложенных вариантов ответа не отвечает на поставленный вопрос. Итак, почему же на клиенте сейчас используется JS, а не PHP?

    Кратко: так исторически сложилось.
    PHP исходно был собран как интерпретируемый скриптовый язык для серверной генерации домашних страниц, позже был превращен в полноценный инструмент для серверного программирования.
    JS был заказан ради внедрения в один конкретный браузер и впервые был анонсирован перед выпуском второй бета-версии Netscape Navigator. Затем он в виде диалектов перекачевал в другие браузеры, ибо идея DHTML (разметка на HTML, оформление на CSS, интерактив и прочая клиентская логика на JS) понравилась многим. Затем он был стандартизован, а после 2009 начался треш.

    В некой альтернативной вселенной первый браузер мог бы использовать PHP в качестве языка клиентских скриптов, и в той вселенной на сервере и клиенте могли бы использовать PHP, и это было бы в некоторой степени удобно.

    В нашей же пытаются сделать обратную вещь: запустить JS на сервере, чтобы и на клиенте, и на сервере был один язык (гуглите: изоморфный JS). Шансов, что на браузере будут нативно исполняться PHP скрипты, равны нулю. Даже dart не прижился.
    Ответ написан
    Комментировать
  • Почему на клиенте используют js а не php?

    @archelon
    потому что php выполняется на сервере, а js — в браузере.
    Ответ написан
    1 комментарий
  • Почему возникает ошибка в переносе строки в JavaScript?

    @Bhudh
    Не может обычная строка переноситься. В конце подставляется точка с запятой и получаются две незакрытые строки в коде.
    В новой версии JS для этого есть обратные кавычки:
    `Адрес пункта выдачи товара#вот_на_это_место_ругается_отладчик#
    `
    Ответ написан
    Комментировать
  • Как оформить стиль в JS?

    neurocore
    @neurocore
    Программист, переставляющий камни
    Вообще - плохая практика, используйте триггеры классов addClass, removeClass, toggleClass. Что если потребуется сменить цвет тени, например, - не лезть же в js каждый раз.
    Ответ написан
    1 комментарий
  • Как грамотнее делать такой лейаут на Flexbox?

    rockon404
    @rockon404
    Frontend Developer
    Лучше сделайте по аналогии с Bootstrap. Разделите сущности по обязанностям, разделите свой container на container и row.
    container ограничивает width и имеет margin: 0 auto; .
    row это flex контейнер для col. И все правильно, свойстово flex-wrap: wrap. Но тогда у колонок помимо flex: 0 0 {value}%;, определите max-width: {value}%;, чтобы сетка не сыпалась.

    В текущем варианте, ваша верстка не гибкая, так как контейнер не используешь без flex и как его сетку не используешь без ограничения ширины.

    Примерно так:
    .cotainer {
      width: $my-width-value;
      width: 100%;
      margin: 0 auto;
      padding-right: 15px;
      padding-left: 15px;
    }
    
    .row {
      display: flex;
      flex-wrap: wrap;
      margin-left: -15px;
      margin-right: -15px;
    }
    
    .col {
      flex: 0 0 $col-width:
      max-width: $col-width:
      padding-right: 15px;
      padding-left: 15px;
    }
    Ответ написан
    Комментировать
  • Почему не импортируются модули js?

    Maksclub
    @Maksclub Куратор тега Веб-разработка
    maksfedorov.ru
    у main.js такой код
    import {one, two} from "./nums";

    • во-первых import появился только в ES6 и в браузерах вроде не доступен
    • во-вторых вы импортировали, но не подключили nums.js — в браузере посмотрите, подгрузился ли он, я сразу скажу — нет, вам нужно собра
    ть исходники (например через webpack)
    Ответ написан
    Комментировать
  • Как назвать поля?

    27cm
    @27cm
    TODO: Написать статус
    Я предпочитаю ещё указывать единицы измерения, чтобы было сразу понятно, что именно там лежит: duration_seconds.

    красная полоса показывет сколько процентов видео вы посмотрели.
    watched_seconds
    Ответ написан
    2 комментария
  • Какие новые направления появились в верстке за 2 года?

    vicodin
    @vicodin
    Имею некоторый опыт
    препроцессоры не теряют своей актуальности
    флекс уже никто не боится использовать
    релизнулся стейбл буцтрап4
    всё чаще макеты дают в скетче/зеплине(зеплин теперь корректно и быстро импортирует макеты из фотошопа)
    платят за годную вёрстку больше чем раньше
    Ответ написан
    5 комментариев
  • Как можно заразиться вирусом просто посещая сайты?

    @Mercury13
    Программист на «си с крестами» и не только
    Сейчас это крайне тяжело. Заражение возможно через четыре канала:
    • Уязвимости конкретного браузера. Кстати, это одна из причин, почему каждая вкладка Хрома — отдельный (и низкопривилегированный) процесс: если процесс хакнут, меньше шансов, что дойдёт до овладения компьютером.
    UPD. Это такой набор данных (например, специально созданный GIF/JPEG/HTML), который, например, пробивает в браузере буфер.
    • Уязвимости плагинов. Уязвимости в Java — это настолько обсосанная вещь, что и говорить не буду; вроде от Java в вебе отказались даже сами Oracle. Flash каждую неделю обновляют. Уязвимости плагинов плохи двумя вещами: 1) Пускай сейчас в мире один браузер — есть ещё два десятка прихлебателей и три браузера «труба пониже, дым пожиже». А Флэш один на всех; 2) Старое плагинное API, оставленное только Флэшу,— большая дыра в безопасности.
    • Уязвимости прочего софта. Казалось бы, качаешь PDF — а это эксплойт для Adobe Reader.
    • «Троянские кони» — но это уже надо своими руками запустить EXE.
    Кстати, в нашей пиратской культуре считается, что UAC надо побыстрее отключить, и во всех «левых» дистрибутивах он выключен. По-моему, это в корне неверно.
    Ответ написан
    8 комментариев
  • Безопасность кода на JS?

    Ptolemy_master
    @Ptolemy_master
    Подозреваю, что вы все же делали фронт-энд, а не бэкэнд. С сайта этой библиотеки: "It eases your development with a client-side HTML5 "

    Что касается бэкэнда, Node.js нельзя отлаживать в браузере удаленно. То есть может быть сейчас и можно, но это доступно только владельцу сервера (разработчику).
    Ответ написан
    1 комментарий
  • Безопасность кода на JS?

    Negezor
    @Negezor
    Senior Shaurma Developer
    Вы понимаете что весь код доступный браузере не может быть априори безопасным, так как он доступен всем у кого есть доступ к сайту. Отладка Node.js недоступна пользователям так как для этого нужно запустить node в режиме --debug. Важную логику не храните на клиентском JS, оставьте её на сервере. А в браузере сделайте минификацию и отключите source map.
    Ответ написан
    Комментировать
  • Может кто-нибудь объяснит поведение :nth-child(n)?

    vicodin
    @vicodin
    Имею некоторый опыт
    так у вас span - и есть первый child внутри родительского блока box, поэтому к нему и применяются стили.
    если вы хотите выделять только среди box__item то оберните их ещё в один див, или используйте nth-of-type, как верно подметили zoozag и Stimulate
    Ответ написан
    4 комментария
  • Подставить переменную при обращении к массиву json?

    @akass
    Developer
    var variable = "some";
    document.write(myJson[variable][0].first);
    Ответ написан
    Комментировать
  • Как повышать уровень скила?

    gobananas
    @gobananas
    finishhim.ru
    Делайте свой проект, только не просто визитку, а что-то типа saas там скил сразу растёт очень быстро. Ну либо берите какие-то проекты на заказ от друзей но сразу предупредите что будет не быстро.
    Ответ написан
    3 комментария
  • Что нужно знать в чистом JS?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Вот тут ответ на ваш вопрос You-Dont-Know-JS Если не можете читать на Английском, значит ваш ответ "Английский язык".
    Ответ написан
    Комментировать
  • Опасно ли использовать видеофон в качестве основного фона сайта?

    Expany
    @Expany
    $this->get('skill');
    ИМХО, актуально только на лендингах.
    Ответ написан
    Комментировать
  • Как сделать все в одном окне?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Такой момент, что один вопрос появлялся на экране и после ответа, появлялся второй вопрос на весь экран. В принципе как в любом тестирование. Как стоит здесь делать?
    Записать все 12 вопросов в одну форму, в 12 разных блоков. Показывать следующий блок после ответа на вопрос. Форма - одна. Др-ть сервер AJAX'ом каждый раз - идея плохая, так как:
    1. Загрузится всё то же самое, что и за одну загрузку, но одним запросом - это будет быстрее и промежуточных данных меньше
    2. Пользователю не придётся постоянно ждать подгрузки данных между ответами

    И как еще при этом таймер привязать к закрытие теста?
    Таймер - не надо привязывать. Берёте любой таймер на JS, коих валом или пишите простейший свой таймер (в зависимости от ваших потребностей). А на сервере соотв. проверяете время начала теста и время его окончания, если пользователь уложился в отведенный интервал - всё ок, если же нет...
    Ответ написан
    7 комментариев
  • Как передать функцию в родительский компонент?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Вопрос поставлен неправильно, так как вы передаете функцию в дочерний компонент, а не в родительский.

    Вам по-хорошему надо использовать arrow function и таких проблем возникать не будет:
    this.state.title.map((item, i) => (
      <TodoList
        key={i}
        index={i}
        deleteItem={descriptionArr[i]}
        title={titleArr[i]}
        deleteItem={this.deleteItem}
      />
    ))

    Тот способ, которым вы решили проблему в React сообществе использовать не принято.

    Сама проблема в том, что контекст обычной функции(написанной через ключевое слово function) ссылается в strict режиме на undefined, в обычном на window.

    Вам необходимо разобраться c основами JS и с синтаксисом ES6. Есть для этих целей хороший ресурс learn.javascript.ru
    Вашем примере видно одну семантическую ошибку, вы назвали компонент описывающий задачу TodoList, его следовало назвать TodoItem.
    То, что вы раздельно храните массивы с title и description - ужаснейшее архитектурное решение, храните задачи в виде массива объектов, описывающих сущность Todo:
    [
      {
        title: 'title',
        description: 'description',
      },
      {
        title: 'title',
        description: 'description',
      },
      {
        title: 'title',
        description: 'description',
      }
    ]
    Ответ написан
    2 комментария
  • Почему нельзя изменить строку в const, если строка в JS это массив?

    @EEclipsEE
    скажу вам больше. строку в var тоже нельзя изменить. Илюбые методы строк не меняют исходную строку. Ее можно только переопределить. Строки в js это псевдомассивы.
    Ответ написан
    Комментировать