IntelliSense для JavaScript

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

С помощью IntelliSense выполнение следующих задач становится проще:

  • Поиск сведений о членах.

  • Вставка элементов языка прямо в код.

  • Сохранение контекста, не покидая текстовый редактор.

  • Поддержка пользовательского IntelliSense с комментариями XML-документации и расширяемостью IntelliSense JavaScript.

Сведения о новых функциях языковой службы JavaScript см. в разделе Новые возможности Visual Studio 2012, версия-кандидат.

В этом разделе содержатся следующие подразделы.

  • Определение контекста IntelliSense

  • Обработка сведений IntelliSense

  • Функции IntelliSense JavaScript

  • Расширяемость IntelliSense JavaScript

  • Проверка JavaScript

Дополнительные сведения о функциональных возможностях IntelliSense в Visual Studio см. в разделе Использование технологии IntelliSense.

Определение контекста IntelliSense

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

Текущий контекст скрипта создается на основе следующих элементов:

  • Функции, определенные во всех блоках скриптов в активном документе.Встроенные блоки скрипта поддерживаются в файлах с расширениями .aspx., .ascx, .master, .html и .htm.

  • элементы script с атрибутом src, указывающих на другой файл сценария.Разрешение конечного файла скрипта должно быть .js.

  • Файлы JavaScript, ссылающиеся на другие файлы JavaScript с помощью директивы reference.

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

  • Ссылки на веб-службы XML.

  • Элементы управления ScriptManager и ScriptManagerProxy, если веб-приложение является приложением AJAX на основе ASP.NET.

  • Microsoft Ajax (библиотека), если используется веб-приложение ASP.NET с поддержкой AJAX.

    ПримечаниеПримечание

    IntelliSense не поддерживается для скрипта, расположенного в атрибутах обработчика событий для элементов HTML, или определенного в атрибутах href.

Обработка сведений IntelliSense

Чтобы обеспечить JavaScript IntelliSense, языковая служба выполняет следующие операции:

  • Создает список зависимых файлов JavaScript на основе ссылок в активном документе и исходя из рекурсивной проверки ссылок на скрипты в файлах.

  • Выполняется обход списка и сбор сведений о типах и других соответствующих данных из каждого файла.

  • Вычисляет данные и передает их в языковой службы JavaScript, которая доступность сведений о типах и данных в IntelliSense.

  • Файлы проверяются на предмет изменений, которые могут затронуть список IntelliSense и список обновляется в случае необходимости.Скрипты на удаленном хранят (такие как связанные с помощью HTTP) не получают наблюданными.

Функции IntelliSense JavaScript

JavaScript IntelliSense поддерживает следующие объекты:

  • Элементы Document Object Model (DOM)

  • Встроенные объекты

  • Пользовательские переменные, функции и объекты

  • Объекты, определенные в внешних файлов с помощью ссылки (например, ссылки на скрипты, директивы ссылки и эталонные группы.

  • Объекты, определенные в Комментарии XML-документации, например параметры и поля.

  • Объекты, которые описываются с помощью стандартных тегов комментария JavaScript (/).Для получения дополнительной информации см. Расширение IntelliSense для JavaScript.

  • Поддерживаемые объекты, используя механизм Расширяемость IntelliSense JavaScript.Для получения дополнительной информации см. Расширение IntelliSense для JavaScript.

  • Объекты ASP.NET AJAX.

Когда IntelliSense не сможет определить тип объекта, он предоставляет параметры для завершения операторов использование идентификаторов в активном документе.Для получения дополнительной информации см. Завершение операторов с использованием идентификаторов.

Bb385682.collapse_all(ru-ru,VS.110).gifЭлементы HTML DOM

JavaScript IntelliSense предоставляет справочники для динамических элементов DOM HTML (DHTML), например body, form и div.IntelliSense выводит только элементы, включенные в текущий документ и главную страницу.JavaScript IntelliSense также поддерживает объекты window и document и их членов.

Bb385682.collapse_all(ru-ru,VS.110).gifВстроенные объекты

JavaScript IntelliSense предоставляет справочники по стандартных встроенных объектов Array, String, Math, Date и Number.Дополнительные сведения о встроенных объектах содержатся в разделе Встроенные объекты (JavaScript).

Bb385682.collapse_all(ru-ru,VS.110).gifПользовательские переменные, функции и объекты

При изменении файла JavaScript, Visual Studio сканирует открытые и связанные документы для определения всех доступных ресурсов кода.В их число входят созданные пользователем переменные, функции и объекты.Эти ресурсы становятся доступны в JavaScript IntelliSense.

Дополнительные сведения о пользовательских переменных, функциях и объектах см. в статье Создание собственных объектов на веб-узле MSDN (на английском языке).

Bb385682.collapse_all(ru-ru,VS.110).gifСсылки на внешние файлы

Можно включить различных типов внешних ссылок на файлы, чтобы обеспечить поддержку IntelliSense в коде.Ссылки на внешние файлы могут быть ссылками на скрипты, директивы ссылки, и их можно определить с помощью справочные группы.

Bb385682.collapse_all(ru-ru,VS.110).gifСсылки на скрипты

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

Если страница ASP.NET с поддержкой AJAX не используется, можно создать ссылку на внешний файл скрипта при помощи атрибута src в открывающем теге элемента script.Атрибут src указывает URL-адрес внешнего файла с исходным кодом или данными.

В следующем примере показана разметка для атрибута src в теге <script> для создания ссылки на файл скрипта.

<script type="text/javascript" src="~/Scripts/JavaScript.js">
  
</script>

При работе со страницей ASP.NET с поддержкой AJAX можно создать ссылки на файлы со скриптом при помощи объекта ScriptReference элемента управления ScriptManager.

В следующем примере показана разметка для объекта ScriptReference в элементе управления ScriptManager для создания ссылки на файл скрипта.

<asp:ScriptManager ID="ScriptManager1" runat="server">
  <Scripts>
    <asp:ScriptReference Path="~/Scripts/JavaScript.js" />
  </Scripts>
</asp:ScriptManager>

IntelliSense также поддерживает файлы скрипта, внедренные в качестве ресурсов в сборку в веб-приложениях ASP.NET AJAX.Дополнительные сведения о ресурсах внедренных скриптов см. в разделе Embedding a JavaScript File as a Resource in an Assembly.

Bb385682.collapse_all(ru-ru,VS.110).gifДирективы ссылки

Директивы reference позволяют Visual Studio устанавливать отношение между редактируемым скриптом и другими скриптами.Директива reference позволяет включить файл скрипта в контекст программирования текущего файла скрипта.Эта дает возможность для IntelliSense ссылаться извне на определенные функции, типы и поля в процессе программирования.

Директива reference создается в форме комментария XML.Объявление директивы должно предшествовать любому скрипту в файле.Директива reference может содержать ссылку на скрипт на диске, ссылку на скрипт в сборке, ссылку на скрипт в службе или ссылку на скрипт на странице.

Ниже приводятся примеры использования директив ссылок на скрипты на диске.В первом примере, языковая служба выполняет поиск файла в той же папке, содержащей файл проекта (например, .jsproj).

/// <reference path="ScriptFile1.js" />

/// <reference path="Scripts/ScriptFile2.js" />

/// <reference path="../ScriptFile3.js" />

/// <reference path="~/Scripts/ScriptFile4.js" />

В следующем примере продемонстрировано, как создать ссылку на скрипт в сборке.

/// <reference name "Ajax.js" assembly="System.Web.Extensions, ..." />

В следующем примере показано, как создать ссылку на скрипт в службе.

/// <reference path="MyService.asmx" />

/// <reference path="Services/MyService.asmx" />

/// <reference path="../MyService.asmx" />

/// <reference path="~/Services/MyService.asmx" />

ПримечаниеПримечание

JavaScript IntelliSense не поддерживается для скрипта, расположенного файлах веб-службы (asmx-файлы) в проектах веб-приложений (WAP).

В следующем примере показано, как создать ссылку на скрипт на странице.

/// <reference path="Default.aspx" />

/// <reference path="Admin/Default.aspx" />

/// <reference path="../Default.aspx" />

/// <reference path="~/Admin/Default.aspx" />

К директиве reference применяются следующие правила.

  • Комментарий XML reference должен быть объявлен перед любым скриптом.

  • В синтаксисе комментария XML необходимо использовать три косые черты.Ссылки со стандартным синтаксисом комментариев (две косые черты) пропускаются.

  • Для каждой директивы можно указать только один файл или ресурс.

  • Несколько ссылок на скрипты на странице не допускается.

  • Если ссылка на страницу уже указана, никакой другой тип директивы ссылки не допускается.

  • В именах файлов должны быть указаны относительные пути.Допускается для относительных путей от корня приложения использовать оператор тильды (~).

  • Абсолютные пути пропускаются.

  • Директивы ссылок в страницах со ссылками не будут обрабатываться, то есть директивы ссылок не разрешаются рекурсивно для страниц.Включается только скрипт, на который на странице имеется прямая ссылка.

Bb385682.collapse_all(ru-ru,VS.110).gifЭталонные группы

Эталонные группы можно использовать для указания того, что определенные файлы JS IntelliSense в области для всех проектов JavaScript.3 Эталонной группы доступны: Неявные (Windows), переданные (Интернет) и специальные справочные работы команды.Неявные ссылки (Windows) для приложений Магазина Windows с использованием JavaScript и неявные ссылки (Интернета) для проектов HTML5.Файлы, включенные в этих неявных справочных групп в области для каждого js-файла, открытого в редакторе кода.

Преданная эталонная команда рабочего HTML5 Интернета.Файлы, указанные в этой группе в области для js-файлов, имеют точную ссылку на преданной эталонной группе работы.Неявные ссылки не применяются к файлу JS с явной ссылки на преданной эталонной группе работы.

Параметры конфигурации можно использовать для редактора кода JavaScript определить неявные ссылки.Для получения дополнительной информации см. "Параметры", "Текстовый редактор", JavaScript, IntelliSense.

СоветСовет

Ссылки IntelliSense обычно используются для обеспечения поддержки IntelliSense для глобальных объектов и IntelliSense для расширения.Также можно использовать эту функцию для скриптов, необходимо загрузить во время выполнения с помощью загрузчик скрипта.

Bb385682.collapse_all(ru-ru,VS.110).gifКомментарии к XML-документации

Комментарии XML-документации текстовые описания, добавляемые в скрипт.Эти текстовые описания отображаются с IntelliSense при создании ссылки на скрипт с комментарием.Например, можно задать сведения о параметрах и возвращаемом значении функции.Комментарии XML-документации доступны только из указанных файлов, сборок и служб.Дополнительные сведения см. в разделах Комментарии XML-документации (JavaScript) и Практическое руководство. Создание комментариев XML-документации для JavaScript.

IntelliSense может отображать справочники по коду для комментариев XML в следующих случаях ссылок на файлы.

  • Файл .js со ссылкой на другой файл .js.

  • Файл .js со ссылкой на файл .aspx.

  • Файл .aspx со ссылкой на файл .js.

IntelliSense недоступен, если файл .aspx ссылается на другой файл .aspx.

Bb385682.collapse_all(ru-ru,VS.110).gifОбъекты ASP.NET AJAX

Технологии AJAX ASP.NET также поддерживает JavaScript IntelliSense.Технология ASP.NET AJAX ее использует клиента, которая расширяет стандартных типов, доступных в ECMAScript (JavaScript).Чтобы включить JavaScript IntelliSense подробные сведения об объектах технологии AJAX ASP.NET, комментарии XML-документации добавленные во всех областях Microsoft Ajax (библиотека).Эти комментарии XML-документации отображаются при использовании типы и элементы, которые содержатся в библиотеке технологии AJAX ASP.NET.

ПримечаниеПримечание

Закрытые члены не отображаются JavaScript IntelliSense.Закрытые члены в ASP.NET AJAX можно определить по знаку подчеркивания (_) в начале.

Расширяемость IntelliSense JavaScript

Языковая служба JavaScript предоставляет объекты и функции, которые позволяют изменить возможности IntelliSense для разработчиков, которые используют библиотеки третьей стороны.Эти функции особенно полезны, когда служба языка по умолчанию не может предоставить все данные, которые необходимо реализовать клиентов.Для получения дополнительной информации см. Расширение IntelliSense для JavaScript.

Проверка JavaScript

JavaScript сценарии проверка выполняется постоянно в фоновом режиме.Когда Visual Studio обнаруживает синтаксические ошибки в коде JavaScript, отзывы предоставляется следующими способами:

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

  • Окно Список ошибокВ окне Список ошибок выводится описание ошибки, указывается файл, где произошла ошибка, номер строки и столбца, а так же проект.Если окно Список ошибок не отображается, в меню Вид щелкните Список ошибок.

  • В окне вывода отображается ссылки, не загружены.

К началу

См. также

Задачи

Практическое руководство. Создание комментариев XML-документации для JavaScript

Основные понятия

Расширение IntelliSense для JavaScript

Завершение операторов с использованием идентификаторов

Комментарии XML-документации (JavaScript)

Другие ресурсы

Использование технологии IntelliSense

Об объектной модели DHTML

List Members

Атрибут SRC | свойство src