Udostępnij za pośrednictwem


JavaScript IntelliSense

Technologia IntelliSense pomaga napisać kod szybciej i z mniejszą liczbą błędów poprzez dostarczanie informacji w trakcie kodowania.Podczas pracy ze skryptem klienta w Edytorze kodu JavaScript, IntelliSense wyświetla listę obiektów, funkcji, właściwości i parametrów, które są dostępne w oparciu o bieżący kontekst.Można wybrać opcję kodowania z wyskakującej listy dostarczonej przez technologię IntelliSense, aby uzupełnić kod.

Technologia IntelliSense sprawia, że łatwiej wykonać następujące zadania:

  • Znajdowanie informacji o elemencie członkowskim.

  • Wstawianie elementów języka bezpośrednio w kodzie.

  • Obsługa kontekstu bez konieczności opuszczania Edytora kodu.

  • Obsługa niestandardowej technologii IntelliSense z komentarzami dokumentacji XML i rozszerzalność JavaScript IntelliSense.

Ten temat zawiera następujące sekcje:

  • Określanie kontekstu IntelliSense

  • Przetwarzanie informacji IntelliSense

  • Funkcje JavaScript IntelliSense

  • Rozszerzalność JavaScript IntelliSense

  • Sprawdzanie poprawności języka JavaScript

Aby uzyskać więcej informacji na temat funkcji IntelliSense w Visual Studio, zobacz Korzystanie z IntelliSense.

Określanie kontekstu IntelliSense

Technologia JavaScript IntelliSense zawiera opcje kodowania w zależności od całego skryptu, który odnosi się do bieżącego kontekstu skryptu.Obejmuje to elementy skryptu w bieżącym pliku.Obejmuje to również wszelki kod, który jest wywoływany bezpośrednio lub pośrednio ze skryptu, takie jak odwołania do pliku skryptu, odwołania do zestawów skryptów, odwołania do usługi i odwołania do strony skojarzonej.

Bieżący kontekst skryptu jest utworzony w oparciu o następujące elementy:

  • Funkcje, które są zdefiniowane we wszystkich blokach skryptu w aktywnym dokumencie.Wbudowane bloki skryptu są obsługiwane w plikach, które mają rozszerzenia nazwy pliku aspx., ascx, .master, .html i .htm.

  • Elementy script z atrybutami src, które wskazują na inny plik skryptu.Docelowy plik skryptu musi mieć rozszerzenie nazwy pliku js.

  • Pliki JavaScript, które odwołują się do innych plików JavaScript za pomocą dyrektywy reference.

  • Grupy odniesienia dla obiektów globalnych, rozszerzenia IntelliSense lub pliki skryptów ładowane z opóźnieniem.

  • Odwołania do usług XML sieci Web.

  • Formanty ScriptManager i ScriptManagerProxy, jeśli aplikacja sieci Web jest aplikacją ASP.NET z włączoną obsługą AJAX.

  • Microsoft Ajax Library, jeśli pracujesz w aplikacji sieci Web ASP.NET z włączoną obsługą AJAX.

    [!UWAGA]

    Technologia IntelliSense nie jest obsługiwana dla skryptu, który znajduje się w atrybutach programu obsługi zdarzeń dla elementów HTML, lub który jest zdefiniowany w atrybutach href.

Przetwarzanie informacji IntelliSense

Aby zapewnić JavaScript IntelliSense, usługa językowa wykonuje następujące operacje:

  • Tworzy listę plików zależnych JavaScript, które są oparte na odwołaniach w aktywnym dokumencie i oparte na rekursywnym rozpatrywaniu odwołań skryptu w plikach odwołania.

  • Przechodzi przez listę i gromadzi informacje o typie oraz inne odpowiednie dane z każdego pliku.

  • Agreguje dane i przekazuje je do usługi języka JavaScript, która udostępnia informacje o typie i danych technologii IntelliSense.

  • Monitoruje pliki pod kątem zmian, które mogą mieć wpływ na listę IntelliSense i aktualizuje listę, stosownie do potrzeb.Skrypty w lokalizacjach zdalnych (do których kod odwołuje się na przykład za pomocą protokołu HTTP) nie są monitorowane.

Funkcje JavaScript IntelliSense

Technologia JavaScript IntelliSense obsługuje następujące obiekty:

  • Elementy modelu DOM

  • Obiekty wewnętrzne

  • Zmienne, funkcje i obiekty zdefiniowane przez użytkownika,

  • Obiekty zdefiniowane w zewnętrznych plikach przy użyciu odwołań, takie jak odwołania do skryptu, dyrektywy odwołań i grupy odwołań.

  • Obiekty zdefiniowane w zdalnych plikach, które zostały pobrane przez program Visual Studio.

  • Obiekty określone w komentarzach dokumentacji XML, takie jak parametry i pola.

  • Obiekty oznaczone przy użyciu standardowych znaczników komentarza JavaScript (//).Aby uzyskać więcej informacji, zobacz Rozszerzanie JavaScript IntelliSense.

  • Obiekty obsługiwane za pomocą mechanizmu rozszerzalności.Aby uzyskać więcej informacji, zobacz Rozszerzanie JavaScript IntelliSense.

  • Obiekty ASP.NET AJAX

Gdy IntelliSense nie jest w stanie określić typu obiektu, udostępnia opcje uzupełniania instrukcji przy użyciu identyfikatorów w aktywnym dokumencie.Aby uzyskać więcej informacji, zobacz Uzupełnianie składni dla identyfikatorów.

Elementy DOM HTML

Technologia JavaScript IntelliSense zawiera odwołania programistyczne dla elementów DOM Dynamic HTML (DHTML), takich jak body, form i div.Tylko elementy, które są zawarte w bieżącym dokumencie i na stronie głównej, są wyświetlane przez technologię IntelliSense.JavaScript IntelliSense obsługuje również obiekty window i document i ich elementy członkowskie.

Obiekty wewnętrzne

Technologia JavaScript IntelliSense zawiera odwołania programistyczne dla obiektów wewnętrznych, takich jak Array, String, Math, Date i Number.Aby uzyskać więcej informacji o obiektach wewnętrznych, zobacz Obiekty wewnętrzne (JavaScript).

Zmienne, funkcje i obiekty zdefiniowane przez użytkownika

Po zmianie pliku JavaScript, Visual Studio skanuje otwarte i odnośne dokumenty, aby określić wszystkie dostępne zasoby kodu.Obejmuje to zmienne, funkcje i obiekty, które zostały utworzone.Te zasoby będą dostępne dla JavaScript IntelliSense.

Aby uzyskać więcej informacji na temat zmiennych, funkcji i obiektów zdefiniowanych przez użytkownika, zobacz Tworzenie własnych obiektów w witrynie MSDN.

Odwołania do pliku zewnętrznego

Mogą zawierać różne typy odwołań do zewnętrznego pliku, aby uzyskać obsługę IntelliSense w kodzie.Odwołania do zewnętrznego pliku mogą być odwołaniami do skryptu, dyrektywami odwołań lub mogą być określone za pomocą grup odwołań.

Odwołania do skryptów

Zamiast pisania całości skryptu klienckiego na stronie, można utworzyć zewnętrzne pliki odwołań, które zawierają kod skryptów.Ułatwia to ponowne użycie kodu przez różne strony oraz umożliwia buforowanie skryptu klienckiego przez przeglądarkę.

Jeśli nie pracujesz na stronie sieci Web z obsługą technologii ASP.NET AJAX, do zewnętrznego pliku skryptu można się odwoływać za pomocą atrybutu src w znaczniku otwierającym elementu script.Atrybut src określa adres URL do zewnętrznego pliku zawierającego kod źródłowy lub dane.

W poniższym przykładzie pokazano oznaczenie, które używa atrybutu src w znaczniku <script>, aby odwołać się do pliku skryptu.

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

Jeśli pracujesz ze stroną sieci Web z obsługą ASP.NET AJAX, możesz się odwoływać do plików skryptów za pomocą obiektu ScriptReference formantu ScriptManager.

W poniższym przykładzie pokazano oznaczenie, które używa obiektu ScriptReference w formancie ScriptManager, aby odwołać się do pliku skryptu.

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

Technologia IntelliSense obsługuje również pliki skryptów, które są osadzane jako zasoby w zestawie w aplikacji sieci Web ASP.NET AJAX.Aby uzyskać więcej informacji na temat zasobów osadzonych skryptów, zobacz Embedding a JavaScript File as a Resource in an Assembly.

Dyrektywy odwołań

Dyrektywa odwołania reference pozwala Visual Studio na ustanowienie związku pomiędzy aktualnie edytowanym skryptem i innymi skryptami.Dyrektywa odwołania reference pozwala umieścić plik skryptu w kontekście skryptów bieżącego pliku skryptu.Dzięki temu IntelliSense może się odnosić do zewnętrznie zdefiniowanych funkcji, typów i pól w trakcie kodowania.

Dyrektywę odwołania reference tworzy się w postaci komentarza XML.Dyrektywa musi być zadeklarowana w pliku wcześniej niż dowolny skrypt.Dyrektywa reference może zawierać odwołanie do skryptu na dysku, odwołanie do zestawu skryptów, odwołanie do skryptów usługi lub odwołanie do skryptu oparte na stronie.

Poniższy przykład pokazuje przykłady stosowania dyrektyw odniesienia opartych na dysku.W pierwszym przykładzie usługa języka szuka pliku w tym samym folderze, który zawiera plik projektu (na przykład .jsproj).

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

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

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

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

Poniższy przykład pokazuje, jak utworzyć odwołanie do skryptu opartego na zestawie.

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

Poniższy przykład pokazuje, jak utworzyć odwołanie do skryptu opartego na usłudze:

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

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

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

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

[!UWAGA]

JavaScript IntelliSense nie jest obsługiwana dla skryptu, który jest zawarty w plikach usługi sieci Web (.asmx) w projektach aplikacji sieci Web (WAP).

Poniższy przykład pokazuje, jak utworzyć odwołanie do skryptu opartego na stronie.

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

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

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

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

Do dyrektywy reference są stosowane następujące reguły:

  • Komentarz XML reference musi być zadeklarowany przed jakimkolwiek skryptem.

  • Należy użyć składni komentarzy XML z trzema ukośnikami.Odniesienia przy użyciu składni standardowych komentarzy (dwa ukośniki) są ignorowane.

  • Można określić tylko jeden plik lub zasób dla każdej dyrektywy.

  • Wiele odwołań do skryptów opartych na stronie nie jest dozwolone.

  • Jeśli jest określone odwołanie oparte na stronie, nie są dozwolone inne typy dyrektyw odwołania.

  • Nazwy plików używają ścieżek względnych.Można używać operatora tyldy (~), aby tworzyć ścieżki względem katalogu głównego aplikacji.

  • Ścieżki bezwzględne są ignorowane.

  • Dyrektywy odwołania na stronach odwołania nie będą przetwarzane — to znaczy, że dyrektywy odwołania nie są rekursywnie rozwiązywane dla stron.Uwzględniany jest tylko skrypt wywoływany bezpośrednio przez stronę.

Grupy odwołań

Można używać wstępnie zdefiniowanych grup odwołań w celu określania, że konkretne pliki .js IntelliSense znajdują się w zakresie dla różnych projektów JavaScript.Dostępne są następujące typy grup odwołań:

  • Niejawna (Windows), dla aplikacji Windows Store przy użyciu JavaScript.Pliki dołączone do tej grupy są w zakresie dla każdego pliku .js otwartego w Edytorze kodu dla projektu określonego typu.

  • Niejawna (sieć Web) dla projektów HTML5.Pliki dołączone do tej grupy są w zakresie dla każdego pliku .js otwartego w Edytorze kodu dla tych typów projektu.

  • Grupy odwołań wyspecjalizowanych funkcji roboczych, dla funkcji roboczych HTML5 sieci Web.Pliki określone w tej grupie są w zakresie plików .js, które mają wyraźne odniesienie do grupy odwołań wyspecjalizowanych funkcji roboczych.

  • Ogólna dla innych typów projektów języka JavaScript.

W większości scenariuszy nie trzeba modyfikować grup odwołań.Jednakże, jeśli chcesz wprowadzić zmiany,możesz użyć opcji konfiguracji dla Edytora kodu JavaScript w celu określenia plików znajdujących się w grupach odwołań.Aby uzyskać instrukcje dotyczące korzystania z tej funkcji, zobacz Opcje, edytor tekstu, JavaScript, IntelliSense.

PoradaPorada

Odwołania IntelliSense są zazwyczaj używane do obsługi technologii IntelliSense dla obiektów globalnych i rozszerzeń IntelliSense.Ta funkcja służy również dla skryptów, które muszą być ładowane w czasie wykonywania za pomocą programu ładującego skrypt.

Odwołania do pliku zdalnego

Można poinstruować Visual Studio, aby pobierał zdalne pliki JavaScript, do których istnieją odwołania w pliku JavaScript, w celu zapewnienia obsługi technologii IntelliSense dla zdalnego pliku lub biblioteki.Gdy korzystasz z tej funkcji, pliki zostaną pobrane po włączeniu ich jako odwołania w pliku JavaScript.

[!UWAGA]

Z wyjątkiem projektów sieci Web, funkcja ta działa tylko dla plików JavaScript, które są otwierane poza kontekstem projektu.Dla projektów sieci Web domyślnie pobierane są pliki zdalne, do których odwołuje się projekt.

Aby uzyskać instrukcje dotyczące korzystania z tej funkcji, zobacz Opcje, edytor tekstu, JavaScript, IntelliSense.

Informacje dotyczące przestrogiPrzestroga

Jeśli włączysz tę funkcję i obserwujesz mniejszą wydajność w Edytorze kodu, zalecamy jej wyłączenie.

Komentarze dokumentacji XML

Komentarze dokumentacji XML to opisy tekstowe elementów kodu, które można dodać do skryptu.Te opisy tekstowe są wyświetlane w IntelliSense podczas tworzenia odwołania do komentowanego skryptu.Na przykład można dostarczyć informacji na temat parametrów funkcji i wartości zwracanej.Komentarze dokumentacji XML są dostępne tylko z odnośnych plików, zestawów i usług.Aby uzyskać więcej informacji, zobacz Komentarze dokumentacji XML (JavaScript) i Porady: tworzenie komentarzy do dokumentacji JavaScript XML.

Technologia IntelliSense można wyświetlić komentarze dokumentacji XML w następujących scenariuszach:

  • Plik .js, który odwołuje się do innego pliku .js.

  • Plik .js, który odwołuje się do pliku .aspx.

  • Plik .aspx, który odwołuje się do pliku .js.

Technologia IntelliSense nie jest dostępna, gdy jeden plik .aspx odwołuje się do innego pliku aspx.

Obiekty ASP.NET AJAX

ASP.NET AJAX również obsługuje technologię JavaScript IntelliSense.ASP.NET AJAX obejmuje strukturę klienta, która rozszerza standardowe typy, które są dostępne w języku ECMAScript (JavaScript).Aby umożliwić technologii JavaScript IntelliSense dostarczanie szczegółowych informacji o obiektach ASP.NET AJAX, komentarze dokumentacji XML zostały dodane w całej Microsoft Ajax Library.Te komentarze dokumentacji XML są wyświetlane podczas korzystania z typów i elementów członkowskich, które są zawarte w bibliotece programu ASP.NET AJAX.

[!UWAGA]

Prywatne elementy członkowskie nie są wyświetlane przez JavaScript IntelliSense.Prywatne elementy członkowskie są oznaczone w technologii ASP.NET AJAX jako elementy członkowskie, które rozpoczynają się od znaku podkreślenia (_).

Rozszerzalność JavaScript IntelliSense

Usługa języka JavaScript zawiera obiekty i funkcje, które umożliwiają modyfikowanie doświadczenia IntelliSense dla programistów, którzy korzystają z bibliotek innych firm.Funkcje te są szczególnie przydatne, gdy usługa języka domyślnego nie jest w stanie dostarczyć wszystkich informacji, które chcesz dostarczać klientom.Aby uzyskać więcej informacji, zobacz Rozszerzanie JavaScript IntelliSense.

Sprawdzanie poprawności języka JavaScript

Sprawdzanie poprawności skryptów JavaScript jest nieprzerwanie wykonywane w tle.Gdy Visual Studio wykrywa błędy składni w kodzie JavaScript, informacje są przekazywane w następujący sposób:

  • Podkreślone elementy w edytorze.Czerwone faliste linie wskazują błędy.Jeśli przytrzymasz wskaźnik myszy nad błędem, wyświetla się etykieta zawierająca opis błędu.

  • Okno Lista błędów.Okno Lista błędów wyświetla opis błędu, plik, w którym wystąpił błąd, numer wiersza i kolumny oraz projekt.Aby wyświetlić okno Lista błędów, w menu Widok kliknij Lista błędów.

  • W oknie Dane wyjściowe wyświetlane odwołania, które nie zostały załadowane.

Powrót do początku

Zobacz też

Zadania

Porady: tworzenie komentarzy do dokumentacji JavaScript XML

Koncepcje

Rozszerzanie JavaScript IntelliSense

Uzupełnianie składni dla identyfikatorów

Komentarze dokumentacji XML (JavaScript)

Inne zasoby

Korzystanie z IntelliSense

Model obiektowy DHTML — informacje

List Members

Atrybut SRC | Właściwość src