2009-05-21 6 views
3

これはあなたのスタンダードではありません。「Visual Studioでjavascript IntelliSenseを使用することはできません。記録のために:Visual Studio 2008 jQuery IntelliSenseは散発的に失敗し、VS修正プログラムを再起動します

  • 私は私が私が開発しています-vsdoc.jsドキュメントファイルKB958502

用の修正プログラムをインストールしたSP 1

  • がインストールされているのVisual Studio 2008
  • を使用していますクラスライブラリ内のリソースとしてパッケージ化される相互に関連する一連のjQueryプラグインです。そうディレクトリ内で、Iは、(例として)を有する:

    • jqueryの-vsdoc.js
    • のCore.js
    • plug1.js
    • plug2.js
    • コアで

    .jsの場合、ファイルの先頭に次のように表示されます。

    /// <reference path="jquery-vsdoc.js" /> 
    

    次に、それぞれのプラグ# .jsファイルは、私が持っている:

    /// <reference path="jquery-vsdoc.js" /> 
    /// <reference path="core.js" /> 
    

    IntelliSenseがさえプラグインで働くのCore.jsからの追加を含め、最初に動作します。ただし、参照XMLタグからスペースを追加したり削除したり、Ctrl-Shift-Jを押すだけでは、「JScript IntelliSenseの更新中にエラーが発生する:クライアント側のスクリプトIntelliSense情報がエラーのため生成されない外部のスクリプト参照で。 "それはちょうど1秒前にその外部スクリプトのリファレンスで作業していたことを除いて!

    jquery-vsdoc.jsの場合、私はhttp://jqueryjs.googlecode.com/files/jquery-1.3.2-vsdoc2.jsからCommentバージョン1.3.2b(ファイル内に記載されている)を使用しています。私は必然的に更新されたときに参照の束を変更する必要はありませんので、ファイルからバージョン番号を省略しています。

    だから何が問題だろうか? Visual Studioを再起動すると、面倒な(そして時間がかかる)回避策であることが判明しています。

  • 答えて

    0

    IntelliSenseのタイムアウトを増やしてみましたか?

    デフォルトでは、すべてのIntelliSense要求 は15秒間だけ実行できます。この は、IntelliSenseが無限ループのある スクリプトから保護されます。 に大きなスクリプトまたは遅いマシンがある場合は、 タイムアウト制限を増やしてください。タイムアウト値 は、 Expressまたは完全な製品を使用しているかどうかに応じて、次のレジストリキー に格納されます。 値はそれほど15000

    ます。HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudioを\ 9.0 \ HTMLエディタ \ JsFailsafeTimeout ます。HKEY_CURRENT_USER \ Software \ Microsoft \ VWDExpress \ 9よりも大きい 何かを選ぶミリ秒です。0 \ HTML Editor \ JsFailsafeTimeout

    +0

    良い提案!残念ながら(あるいは幸いにも?)私は大きなスクリプトや遅いマシンを持っていません。失敗は瞬間的で、15秒かかることはありません。 –

    0

    ファイルを閉じて開いても状態はリセットされますか?

    タスクマネージャを開き、プロセスを監視します。 Ctrl-Shift-Jを押すと「typelibbuilder.exe」というプロセスが開始されますか?

    私はVSの再起動が必要な問題の種類をイメージしようとしています。 Ctrl-Shift-Jを押すたびに(メッセージが表示されるような処理が無効になっていない限り)、参照の処理(メッセージが関係する処理)は新しい別のプロセスで行われます。 VSとtypelibbuilderの間のやりとりのように聞こえるか、または他の必要なコンポーネントが失敗しているようです。

    SP1では、「-vsdoc」ファイルを直接参照する必要はありません。 "foo.js"を参照し、その横に "foo-vsdoc.js"ファイルがある場合、VSはintellisenseを生成するためにvsdocバージョンを使用します。私はそれがあなたの問題に関連しているとは思わない。

    Visual Studio 2010でJavascript Intellisenseのパフォーマンスと信頼性を大幅に向上させました。ベータ版は現在ベータ版ですが、まだいくつかのバグがあります)。

    信頼できる再現手順が得られる場合は、http://connect.microsoft.com/にバグレポートを提出することもできます。私が手に外部ファイルで参照としてのjQueryを追加する場合

    、その後、私はJSを更新:

    0

    私は、これはあなたを助ける場合は知らないが、私はVS 2008 JSのインテリセンスで、次のバグが発生しました

    ライン上の「XmlHttpRequestのは未定義である」:

    return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); 
    

    それはに関するいくつかのより多くの情報を提供できるようにJSのインテリセンスエンジンが実際にそれを点検する可能性が高い以上(jQueryのコードの一部を実行しているように思えそれ)。しかし、window.ActiveXObjectはエンジンにはnullなので、新しいXMLHttpRequest()ブロックに入ります。これも失敗します。

    私はIE以外のすべてのブラウザを壊す回避策をハックしました。良い解決策ではありません。私の修正により、次のように変更されます:

    xhr: function() 
        { 
         // hack to fix VS 2008 intellisense... note this breaks any browser 
         // except IE 
         var objXhr = { open: function() { }, 
          setRequestHeader: function() { } 
         }; 
    
         return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : objXhr; 
        }, 
    

    私のintellisenseが動作します。

    0

    Visual StudioでJavaScript intellisenseを無効にすることができます。

    SP1をインストールすると、JavaScriptのインテリセンスを無効にすることができます。
    ツール、オプション...

    [オプション]ダイアログが表示されます。左サイドパネルに次のノードへ

    移動:
    テキストエディタ:: JScriptの::一般

    (グループステートメントの完了で)次のオプションを無効にします。
    ※オートリストメンバー
    *パラメータ情報

    +0

    それはエラーを取り除くでしょう。しかし、それは私を悩ませているエラーではありません。 IntelliSenseは素晴らしいですし、私はそれが好きです - 私はそれが動作したい!うまくいけば、Visual Studio 2010の改良により、この疑問が解決されます。 –

    関連する問題