2013-04-17 3 views
1

Я использую javascript для отправки HTML-форм порой для некоторого удобства. Я хотел бы знать, что есть какие-то недостатки этого подхода по сравнению с использованием классического представления формы с помощью кнопки отправкиhtml form submit with javascript vs submit button

ответ

2

Использование простой HTML лучше по многим причинам:

  • Если пользователь не включен JavaScript, или JavaScript Хейвея ошибка в коде, ваша форма все еще работает.
  • Простые формы HTML проще писать и сложнее ввернуть
  • Фактическая кнопка лучше семантически, чем магическая ссылка или div, которая представляет форму для вас. Это помогает в таких вещах, как настройка табуляции, интеграция ОС, программы чтения с экрана и яснее для программистов, которые работают над кодом после вас.
  • У браузера уже есть боевой код для отправки форм. Зачем вам переписывать этот код? Это увеличивает риск, сложность и время.
  • Не писать код JavaScript означает, что у вас есть больше времени для других вещей, например, больше не работает над кодом.

Если что-то уже существует и работает для вашего прецедента, не изобретайте велосипед!

+0

Хороший ответ, за исключением соображений для браузеров с отключенным Javascript, правда? –

+1

Эх, это то, что нужно учитывать. Я знаю некоторых людей, которые запускают NoScript на всех сайтах, а только сайты с белыми списками, которым они доверяют, с помощью своего JavaScript. В другое время я застрял в терминале без X, и единственным браузером, который у меня был, была lynx - нет JavaScript. Рассмотрим встроенные браузеры, например, в Steam, некоторые музыкальные проигрыватели (показывающие страницу last.fm/wikipedia о художнике) и другие подобные объекты. Они могут отключить JavaScript - или даже не реализовать его - для простоты. Не полагаясь на JavaScript, когда вы можете разумно и легко сделать это, это разумно. –

+0

Я вижу, спасибо за понимание. –

0

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

0

Нет действительно никаких недостатков. У вас может быть больше кода так, как вы это делаете, а не просто обертывать все в форме и кнопке отправки, но вы все равно можете использовать https, конечно же, и все остальное, что может предложить веб-сайт в эти дни.

+0

Спасибо. Можете ли вы разъяснить преимущество HTTPS? это преимущество в кнопке отправки или javascript? – santhosh

+0

не требуется уточнение, вы можете использовать https в любом случае. –

0

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

Ниже приведен список методов, используемых для обнаружения и реагирования на отключенный Javascript:

  1. <noscript>The HTML noscript tag.
  2. Using jQuery or Javascript to set a cookie
  3. Использование JavaScript, чтобы скрыть область с помощью CSS.
+0

Я удивлен, услышав упоминание поддержки браузеров с отключенным Javascript. Это действительно пустая трата времени, чтобы потратить на это хотя бы несколько моментов в 2013 году. –

0

Лично я не являюсь поклонником форм HTML. HTML - это язык макета, и у него плохой. Сохранение разметки и функциональности является основным принципом объектно-ориентированного программирования. Если вы воспринимаете HTML и JavaScript как представляющие эти функции таким образом, вероятно, это личный выбор. Вы можете утверждать, что CSS - это макет.

Если вы пишете простую страницу с небольшим продолжением, то использование HTML-форм - неплохая идея.

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

Если вы начинаете вводить JSON или какие-либо отношения клиент/сервер за пределами «вот мой текст или выпадающий список», то используйте подход программиста, а не веб-дизайнер. JavaScript дает вам большую гибкость. Вы можете общаться с сервером без каких-либо изменений на странице.

Если вы используете библиотеку jQuery, накладные расходы на кодирование очень минимальны.