Почему существует <a>, а не отправка формы методом get?
Мне просто любопытно, почему в HTML есть тег привязки, используемый для предварительной обработки GET-запросов, в частности, без возможности изменить тип HTTP-запроса, или иначе почему бы не использовать соглашение о представлении формы, поскольку у нас может быть возможность получить переменные в любом случае.
Более интересно то, как якорные теги ссылаются на разделы #id на той же странице.
Есть ли веская причина, или это просто догматический остаток?
Изменить: я не спрашиваю о том, что они делают, я ставлю под сомнение соглашение о тегах привязки и представления формы.
Почему это не элемент HTTP-запроса, который охватывает эти базы и по умолчанию используется как GET, поэтому он работает со ссылкой? Почему было принято решение об этой конвенции? Я говорю, что это звучит безумно для меня, и я хочу знать, есть ли какое-либо оправдание, когда это было решено.
3 ответа
Якорь связывает два документа или части документов, то есть текущий и ссылочный. Но форма не делает. Форма для отправки запросов. Вот и все.
Использовать get проще, потому что вы можете выполнить все действие с одной строкой и без дополнительных тегов. Это коротко и просто, и для большинства приложений передачи параметров и навигации это идеально.
POST для форм и вложенных файлов. GET ограничен в размерах, POST - нет.
Более интересно то, как якорные теги ссылаются на разделы #id на той же странице.
Есть ли веская причина, или это просто догматический остаток?
Нет, URL-адреса хеширования по-прежнему полезны и являются хорошим не-javascript запасным вариантом для навигации по страницам. Хэш-URL-адреса теперь переходят на следующий уровень, чтобы поддерживать состояние и закладки страниц на основе AJAX.
<a>
тег используется для перехода с одной страницы на другую, для чего требуются только запросы GET. И потому, что URL-адреса поддерживают возможность отправки переменных (например, ?a=b
) абсолютно нет необходимости в более сложном теге.
Очевидно, что <a>
тег является встроенным элементом, а <form>
тег является блочным элементом. Таким образом, можно сделать вывод, что теги привязки должны быть простыми, в то время как элементы формы могут быть немного более сложными.