2009-03-13 8 views
3

背景の一部です。このプロジェクトは、ASP.NET AJAX Extensions 1.0を使用したVS 2005 Webアプリケーションです。どのようにしてASP.NETクライアントサイドAPIに常時アクセスできますか?

質問ScriptManagerコントロールを使用せずにScriptmanagerコントロールで使用されるJavaScriptファイルを参照するにはどうすればよいですか?また、ScriptManagerコントロールを使用せずにScriptManagerコントロールを使用する方法もあります。サーバー側のフォームタグにありますか?)

私はマスターページにScriptManagerコントロールを持っていますが、多くの場合、非同期ポストバックだけのページがあり、スクリプトマネージャーがロードされる前にクライアントサイドオブジェクトを作成します。今では、マークアップとCSSの終わり近くにスクリプトを読み込むのがよい習慣だと私は知っていますが、私の場合は、私が作成するスクリプトのいくつかは、通常headタグの前にある必要があります。クライアント側のオブジェクトをインスタンス化するリピータです。

だから、これは私が好きなものです:

//私のスクリプト

今これは私が問題を回避するために何をすべきかです:

(function() { 
    var myInterval; 

    myInterval = setInterval(function() { 
     if (!Type) { 
     return; 
     } 

     clearInterval(myInterval); 

     Type.registerNamespace("Awesome"); 

     Awesome.Widget = function() { 
     var _this = this; 

     this.myProperty = 'This is awesome'; 
     } 
    }, 40); 
})(); 

またはI行いますこれは:

var Awesome = {}; 

Awesome.Widget = function { 
    /// Awesome code. 
} 

また、 ScriptManagerコントロールがある時点でレンダリングするので、これらのスクリプトをMasterPage内に2回ロードします。

おそらく問題は私が間違った方法でこれを行うことです。どんな助けでも大歓迎です。

答えて

2

MS AJAXコントロールを使用しているときは、自動的に配線されたページロードの機能名を利用してコードを入力することができます。

あなたpageLoad関数は(それは少しjQueryのdocument.ready関数のようだが、実際には少し遅れて発射した文書の準備ができたときに、呼び出されるすべてのロードされ、そして、あなたの心のコンテンツにDOMの周りマックてもいいですされます)。

詳細はAJAX Client Life-Cycle Eventsページに記載されています。

function pageLoad(sender, args){ 
    Type.registerNamespace("Awesome"); 

    Awesome.Widget = function() { 
    var _this = this; 

    this.myProperty = 'This is awesome'; 
    } 
} 

ドキュメントの準備ができている程度fussedはありませんが、すべてのスクリプトがロードされていると自分自身をコンテンツと解析できる場合は、代わりにinit eventにフックがあります。

// Attach a handler to the init event. 
Sys.Application.add_init(applicationInitHandler); 

function applicationInitHandler() { 
    Type.registerNamespace("Awesome"); 

    Awesome.Widget = function() { 
    var _this = this; 

    this.myProperty = 'This is awesome'; 
    } 
} 
0

私はあなたの質問に従っているかどうかはわかりませんが、うまくいけば、これが役に立ちます。 ASP.NET AJAXクライアント側ライブラリにアクセスできるようにする標準的な方法は、マスタページにScriptManagerコントロールを追加し、必要に応じてコンテンツページ、ユーザーコントロール、およびWebパーツでScriptManagerProxyコントロールを使用することです。

ScriptManagerProxyコントロールの設定は、マスターページのScriptManagerの設定と組み合わせて、適切なJavaScriptコードをページで使用できるようにします。

+0

ScriptManager/ScriptManagerProxyが読み込まれると、APIへのアクセスに問題はありません。私が持っている問題は、*を使いたいということです。jsファイルScriptManagerがロードされる前、またはAJAXを使用しないページにScriptManagerがロードされるので、カスタムのクライアントサイドオブジェクトがそれらにアクセスできます。 – nickytonline

関連する問題