2010-11-30 8 views
3

私のasp:ScriptManagerコントロールをajaxToolkit:ToolkitScriptManagerの属性CombineScripts="true"に置き換えました。私は、HTMLページのソースを表示するときASP.NETスクリプトの組み合わせ

は今、新しいスクリプトタグがあります:

<script src="/MyPage.aspx?_TSM_HiddenField_=ctl00__pageBody_asScript_tscAjaxScripts_HiddenField&amp;_TSM_CombinedScripts_=%3b%3bAjaxControlToolkit%2c+Version%3d3.0.20820.30277%2c+Culture%3dneutral%2c+PublicKeyToken%3d28f01b0e84b6d53e%3aen-US%3a06e896ab-1f8c-4bcb-9cc4-0200671cba8a%3ae2e86ef9%3a1df13a87%3ac4c00916%3aaf22e781%3a9ea3f0e2%3ac7c04611%3acd120801%3a3858419b%3a96741c43%3a38ec41c0" /> 

しかし、また、古いスクリプトタグはまだあり:WebResource.axdと私はWebResource.axdScriptResource.axdリンクを削除するにはどうすればよいScriptResource.axd

いくつかのページから?

+0

ここのアドバイスに従っていますか? http://stackoverflow.com/questions/626659/combine-scripts-in-asp-net-ajax-toolkit –

+0

私はそれを読んだだけですが、答えはありませんWebResource.axdとScriptResource.axdのリンクを削除するには – ihorko

+0

@ihorkoコードでRegisterClientScriptResourceを呼び出さないようにしてください。 –

答えて

0

これは問題なく動作するようですが、ASP.NET MVCのための簡単なハンドラを書いていますが、Webフォームでも動作させるのは難しくありません。私はgithubに入れた:https://github.com/mastoj/SimpleCompression

私の解決策との良好な部分は、以下のとおりです。

  • あなたのスクリプトの2つのコピーを必要としません。つまり、元のバージョンとの統合されたバージョンです。
  • 必要に応じて圧縮エンジンを変更できます。
  • ファイルは即座に圧縮され、webbサーバーとクライアントのキャッシュに格納されます(クライアントにスクリプトを再度ダウンロードさせるようにバージョン設定を更新できます)。
  • ファイルはオンザフライで結合されます。
  • 結合された圧縮ファイルは元のファイルにファイル依存関係があります。何らかの理由でprodで何かをテストする必要がある場合(再作成はしません:))、再圧縮して結合します。
  • そしてMVCのために、使いやすいです。このシナリオでは
0

.NET 4.0を使用している場合は、scriptmanagerでenablecdn属性を使用することができ、MicrosoftのCDNから必要なJavaScriptコードを提供します。

もしそうでない場合は、引き続きScott Hanselman describes hereとしてマージすることができます。また、HTTPモジュール/フィルタを使用してこれらのスクリプト(WebResource.axd、ScriptResource.axd)を2つまたは3つにまとめることもできますが、ASP.NETの基盤についての豊富な知識が必要です。それ以外の場合は、アプリケーションのMicrosoft Ajaxメソッド呼び出しを壊す可能性があります(これは、UpdatePanelがページの一部などを更新するために使用するそのような機能のためです)。

+0

sry ...私はコメントを書くつもりはなかった、私は答えを書くつもりだった:) –

1

AjaxControlToolkitの一部のコンポーネントスクリプトの組み合わせをサポートします。 から:スライダーのSliderBehavior.jsスクリプト はかなりあいまいな機能が のPerformSubstitutionプロパティによって <% =リソース/ ScriptResource%>タグ がに埋め込むことを可能にするリソースの属性を を有効に使用していますhttp://blogs.msdn.com/b/delay/archive/2007/06/11/script-combining-made-easy-overview-of-the-ajax-control-toolkit-s-toolkitscriptmanager.aspx

JSファイルを取得し、 のスクリプトをブラウザに送信する前に解決してください。この動作は、現在、あなたは完全にこれらのファイルを取り除くために回すことができる魔法のフラグはありません ToolkitScriptManager

によってサポートされていない れます。 ToolKitScriptManagerを使用する利点は、ページに必要なリソースの数を減らし、パフォーマンスを向上させることです。 Webresource.axdファイルとScriptresouce.axdファイルは、AjaxControlToolkitだけでなく、アプリケーション全体で使用されます。私のアドバイスは、Fiddlerのようなプログラムを使って、Scriptresource.axdとWebresource.axdが実際にそこから取り込んで作業しているリソースを確認することです。

1

ajaxToolkit:ToolkitScriptManagerCombineScripts="true"を設定することで、これは、そのページでAJAXコントロールによって使用されるすべてのスクリプトファイルを結合します、そしてそれは以下のフォーム -

<script src="/MyPage.aspx?_TSM_HiddenField_=ctl00__pageBody_asScript_tscAjaxScripts_HiddenField&amp;_TSM_CombinedScripts_=%3b%3bAjaxControlToolkit%2c+Version%3d3.0.20820.30277%2c+Culture%3dneutral%2c+PublicKeyToken%3d28f01b0e84b6d53e%3aen-US%3a06e896ab-1f8c-4bcb-9cc4-0200671cba8a%3ae2e86ef9%3a1df13a87%3ac4c00916%3aaf22e781%3a9ea3f0e2%3ac7c04611%3acd120801%3a3858419b%3a96741c43%3a38ec41c0" /> 

に組み合わせたスクリプトを読み込むことを意味しますしかしScriptResource.axdファイルでは、-MicrosoftAjax.debug.jsMicrosoftAjaxWebForms.debug.jsのようなMicrosoft Ajaxライブラリファイルを別々の要求でロードします。 Microsoft Ajaxを組み合わせることで、1回のリクエストを行うことができます。

明示的<CompositeScript>タグを使用して単一の要求でそれらを組み合わせることMicrosoftAjax.jsWebform.jsMicrosoftAjaxWebForms.debug.jsを指定することができます。 このようにして、JSのリクエストは2つしか表示されません。そのページにAjaxコントロールのスクリプトを組み合わせたものと、組み合わせたスクリプトのものがあります。MicrosoftAjax js