Какая функция js больше подходит для промышленных стандартов? - PullRequest
1 голос
/ 05 апреля 2011

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

<script type="text/javascript">
   // Reference the textbox
   var txt = document.getElementById("<%=txtName.ClientID%>");

   // If the textbox was found, call its focus function
   if (txt != null)
      txt.focus();
</script> 

или

<script type="text/javascript">
   // Reference the textbox and call its focus function
   var txt = $("#txtName");

   txt.focus();
</script> 

Если вы находитесь в такой ситуации, какую вы предложите и почему?

Ответы [ 4 ]

2 голосов
/ 05 апреля 2011

Первый - обычный JS, второй использует jQuery-обертку.Если вы приняли JQuery в качестве платформы JS, второй вариант лучше :).2-й в этом конкретном случае лучше, потому что вам не нужно заботиться о проверке, является ли эта переменная нулевой или нет (вы вызываете функцию фокуса элемента jQuery, поэтому он позаботится о проверке, находится ли элемент в DOMили нет)

1 голос
/ 05 апреля 2011

Как сказал stecb, первый - это простой код JavaScript, а второй - это некая библиотека JS (скорее всего, jQuery).Здесь нет правильного или неправильного подхода, хотя было бы целесообразно использовать библиотеку во всем проекте, если вы загружаете ее, что, очевидно, и есть.Потенциальный выигрыш в производительности от использования простого JavaScript незначителен для базового использования в современных системах.

Вы должны проверить, все ли URL / страницы загружают библиотеку JS, иногда разработчики загружают только определенные библиотеки на некоторых страницах, что помешает вамиспользуя библиотеку, если вы ее не включили.

1 голос
/ 05 апреля 2011

Если вы работаете в команде, txtName.ClientID может иметь значение, более понятное вашим коллегам.Если бы мне приходилось ежедневно пахать много строк кода от моих коллег, я бы пошел на это.
Или возьмите лучшее из обоих миров и используйте что-то вроде: $("#<%=txtName.ClientID%>").focus()

1 голос
/ 05 апреля 2011

Второй использует jquery, поэтому он зависит от этой библиотеки, но он очень читабелен. Вы могли бы даже написать это короче: $("#txtName").focus();

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

...