порядок выполнения jQuery и Razor - PullRequest
1 голос
/ 10 октября 2019

Я работаю над приложением MVC и пытаюсь понять следующее:

  1. Из контроллера MVC я заполняю модель и отправляю ее на просмотр, представление имеет JQuery, код бритвы и элементы HTML,который будет создан первым? HTML создаст DOM и чем JQuery запускает и чем raor код?

  2. Модель имеет все проверки и значения (текст) для всех меток, поэтому сначала должен быть выполнен бритвенный код, верно?

  3. Я прочиталэто где то что "что будет выполнено первым?"это зависит от того, где вы пишете код JQuery, в заголовке ИЛИ в конце тела? Я не понимаю этого ..

1 Ответ

1 голос
/ 10 октября 2019

Из контроллера MVC Я заполняю модель и отправляю ее на просмотр, в представлении есть JQuery, код бритвы и HTML-элементы, которые будут созданы первыми? HTML создаст DOM и чем JQuery выполнит и чем код бритвы?

Razor работает на стороне сервера и используется в представлениях ASP.Net MVC для создания HTML, который затем будет отправлен клиенту,Затем браузер-получатель должен сгенерировать DOM и, наконец, запустить любой JS.

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

Нет. ModelBinder выполняет и проверяет модель вначале (при условии, что вы настроили некоторые аннотации данных). Razor используется только при выводе View, что является одним из последних шагов в конвейере на стороне сервера.

Я где-то читал, что «что будет выполнено первым?»это зависит от того, где вы пишете код JQuery, в заголовке ИЛИ в конце тела? Я не понимаю этого ..

Это относится исключительно к логике на стороне клиента. Рекомендуется размещать код JS / jQuery либо на <head> страницы, либо непосредственно перед </body>. Если вы сделаете первое, вам понадобится метод ожидания загрузки DOM, прежде чем вы запустите JS. В простом JS это будет включать добавление обработчика событий DOMContentLoaded к window. В jQuery это будет обработчик событий document.ready .

Короче говоря, Razor и jQuery выполняются по разным сторонам клиент-серверного разделения в совершенно разное время. Они совершенно не связаны друг с другом.

...