Подтвердить что ты не робот

"Предупреждение плохо" - правда?

Там эта идея работает вокруг этого предупреждения() плохо.

Выражение признательности:

  • Конечно, мы редко хотим использовать его в реальном дизайне интерфейса, так как есть более эффективные способы общения с пользователями.
  • Для отладки console.log() имеет гораздо большее значение, чем alert().
  • Некоторые ситуации (например, использование setTimeout) сталкиваются с проблемами, когда alert() мешает.
  • Фактические отладчики обрабатывают приостановку и возобновление выполнения намного лучше, чем alert(), если это необходимо разработчику.

Вопросы:

  • Есть ли твердая логическая причина никогда не использовать alert()?
  • Значит ли увеличенное значение console.log() действительно уменьшить значение alert() настолько, что оно переходит от "полезного в ограниченных сценариях" к "плохому"?
  • Что вы скажете кому-то, кто хочет использовать alert() в кратком тесте, где ведение журнала не настроено, и какие-либо побочные эффекты не имеют значения (подумайте о учебниках или быстрых прототипах)?
4b9b3361

Ответ 1

Есть ли твердая логическая причина никогда не использовать alert()?

предупреждение плохо, потому что оно не имеет положительных функций и только отрицательные функции

  • блокирует весь браузер
  • блокирует поток javascript
  • печатает только строки
  • требует продолжения взаимодействия с пользователем (это означает, что вы не можете автоматизировать использование браузера)
  • заблокирован обычными блокировщиками всплывающих окон
  • не работает в не-браузерах, таких как node.js(однако console.log работает в node.js)

Значит ли увеличенное значение console.log() действительно уменьшает значение alert() настолько резко, что оно идет от "полезного в ограниченных сценариях" до "плохого"?

Да, хотя есть некоторые исключения

Единственное предупреждение о значении - это быстрый хакерский инструмент для отладки устаревшего браузера или как инструмент для раздражения пользователей.

Ответ 2

  • Нет, это просто функция языка, и нет причин использовать никогда alert().
  • alert() работает иначе, чем console.log(), также console не всегда доступен, поэтому console.log() может уменьшить значение alert(), но, безусловно, он не всегда может быть заменен.
  • Объясните, как console.log() отличается от alert(), тем более что alert() должен выводить строку, поэтому сначала нужно преобразовать значение в строку - это очень важно, если вы хотите проверить какое значение у вас есть в какой-то момент, и вы выбрали alert() для выполнения этой задачи. Он также останавливает выполнение script (иногда это может быть полезно).

Другие ссылки:

Ответ 3

Это наравне с битом "никогда не использовать таблицы". Эта гипербола нацелена на сокращение количества экземпляров для этого крайне плохого дизайна. Он считался плохим дизайном, поскольку он предотвращает дополнительные действия браузера (например, кнопку "Назад" ) и выполнение кода (дополнительный JavaScript и рендеринг страниц), пока пользователь не нажмет кнопку "ОК". Метка "ok" на этой кнопке не может быть изменена и не подходит для подавляющего большинства случаев использования.

Есть более эффективные способы отображения информации об ошибках, проверки работоспособности и диалоговых окон подтверждения, поэтому используйте их.

Существуют "правильные" варианты использования, например, когда вам необходимо остановить нормальный поток страниц по какой-либо причине, и опасно (безопасность) продолжать загружать страницы. Я не могу придумать много конкретных примеров, но они там на окраине. Где-то.

Ответ 4

вы прерываете пользователя - если у него много вкладок, и вы предупреждаете, что он внезапно перенаправляется на вашу вкладку. Боль в заднице для меня как пользователя. это самая большая забота обо мне.

заявив, что console.log не работает во всех браузерах IE7, поскольку один из них не поддерживает то же самое.

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

также предупреждение не полезно для записи объектов JS, которые вы можете отображать только строки.

Ответ 5

Для целей отладки alert может быть иногда контрпродуктивным, но это немедленно. Проблема с использованием alert в сценариях отладки заключается в том, что она нарушает программный поток. Принимая во внимание, что console.log дает возможность продолжить выполнение программы.

Однако вы должны иметь в виду, что console.log не является стандартным свойством window, он существует, потому что сторонние инструменты, такие как Firebug, Inspector и IE Developer Tools, расширяют объект window с помощью console экземпляр объекта. Если вы оставите в своем коде console.log в своем коде, если вы не используете что-то вроде Firebug, это может привести к сбою ваших сценариев.

Использование alert в живом коде, похоже, неодобрительно, но вполне логично использовать, если это механизм, с помощью которого вы хотите предупредить своего пользователя. Например, если они пытаются отправить недействительные данные, вполне возможно выбросить alert("Please enter XXX");. Разумеется, другое - это то, что обеспечивает лучший пользовательский интерфейс.

Еще одна вещь, которую следует учитывать, заключается в том, что вы можете заменить функцию alert, если хотите, например:

var oldAlertFunc = window.alert;
window.alert = function(message) {
    console.log(message);
};

Ответ 6

Хорошо, кажется, что вы ответили на ваши вопросы своим первым списком причин.

Есть ли твердая логическая причина никогда не использовать предупреждение?

При отладке сайтов? Да, никогда не используйте alert().

Никогда, никогда? Возможно, слишком далеко. Но для большинства пользователей alert() возникает гнев и разочарование. Я никогда не был на сайте, где был рад, что они прервали мой визит с помощью диалогового окна предупреждения.

Значит ли увеличенное значение console.log() действительно уменьшить значение alert() настолько, что оно переходит от "полезного в ограниченных сценариях" к "плохим".

В контексте отладки приложений я согласен, alert() плохо. Я могу предоставить гораздо больше информации в console.log(), полном объекте JavaScript, который детализирует много информации. В сообщениях, отображаемых в окне предупреждения, не так много гибкости.

Что вы говорите кому-то, кто хочет использовать alert() в кратком тесте, где ведение журнала не настроено, и какие-либо побочные эффекты не имеют значения (подумайте о учебниках или быстрых прототипах)?

На самом деле сложнее набрать console.log() по сравнению с alert(). Вы получаете много, гораздо более полезную информацию, и вы заправляете свою кодировку "мышечной памятью" для хороших практик. Если вы пользуетесь хорошими практиками, все время они придут к вам естественным образом. Если вы используете плохие практики все время, они придут к вам естественным образом.

В конечном счете, хотя это зависит от того, что вы делаете. Вы отлаживаете? Или вы пытаетесь связаться с пользователем? Это две разные вещи, которые требуют разных подходов.