Как зарегистрировать ресурс клиентского скрипта внизу веб-страницы, чтобы увеличить время загрузки - PullRequest
3 голосов
/ 10 сентября 2011

Я действительно ненавижу то, как контролирует Extender, контролирует скрипты Asp.net, которые испускают javascript все вверху веб-страницы, и просто переосмысливает любой другой способ испустить его внизу, аналогично тому, что, ClientScriptManager.RegisterStartupScriptПросматривая этот пост от DanWahlin , я думаю, что это возможно, но мне нужно было бы обработать всю грязную работу, так как сценарий включен дважды и убедился, что все необходимые сценарии включены в порядок.Поэтому мой вопрос сводится к следующему

«Я занимаюсь разработкой пользовательских элементов управления, элементов управления Extender и хочу, чтобы все мои сценарии отображались внизу веб-страницы, какие параметры вы предлагаете и почему» *

Примечание: Эти сценарии, а также CSS включены как веб-ресурсы

Ответы [ 3 ]

0 голосов
/ 10 сентября 2011

AFAIK вы должны обрабатывать часть страницы OnRender.Я делал что-то похожее, но переместил состояние просмотра страницы для SEO

 protected override void Render(System.Web.UI.HtmlTextWriter writer)
 {
  System.IO.StringWriter stringWriter = new System.IO.StringWriter();
  HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
  base.Render(htmlWriter);
  string html = stringWriter.ToString();
  int startPoint = -1;
  int endPoint = -1;
  startPoint = html.IndexOf("<input type=\"hidden\" name=\"__VIEWSTATE\"");
  if (startPoint >= 0)
  {
    endPoint = html.IndexOf("/>", startPoint) + 2;
    string viewstateInput = html.Substring(startPoint, endPoint - startPoint);
    html = html.Remove(startPoint, endPoint - startPoint);
    int FormEndStart = html.IndexOf("</form>") - 1;
    if (FormEndStart >= 0)
      html = html.Insert(FormEndStart + 1, viewstateInput);        
  }
}

Может быть, вы можете сделать то же самое lokking для тега script.Другой способ, которым я могу воспользоваться, - это поставить <% = MyVar%> в конце страницы, чтобы вы могли установить его из кода позади, но я думаю, что это слишком сильно связано со страницей

0 голосов
/ 05 октября 2011

На самом деле вы не можете с текущей реализацией элементов управления Ajax Extender. Так что вместо этого мне удалось положиться на структуру зависимостей клиентских скриптов, например script.js. Я добился того, чего хотел.

0 голосов
/ 10 сентября 2011

Пока мы говорим о MS AJAX Toolkit, в Toolkit ScriptManager есть опция, которая называется «LoadScriptsBeforeUI». Если для этого параметра установлено значение «false», вы сможете загрузить свой пользовательский интерфейс перед сценариями, если это ваша цель.

Мне вообще интересно, почему наличие скриптов в верхней части веб-страницы беспокоит вас, поскольку это обычная практика, и вы видите какое-либо влияние, только если ваше соединение очень медленное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...