メインのaspxページがjQuery ajaxを使用して部品の動的ローディングを行っているASP.NET MVC3プロジェクトがあります。だから、基本的にサイトが読み込まれ、/ Home/Indexをヒットし、Index(aspx)ビュー内にあるとき、ajaxを呼び出すいくつかの行がある(/ Home/PartOneと/ Home/PartTwoにページの一部を移入する。AJAXリクエストの待機時間/待ち時間を減らす/取り除く方法
ので、ページが読み込まれるたびに、基本的に3つの要求を行っている。PartOneを取得するには、インデックスを取得し、その後、PartTwo
質問:なぜのための時間を「待機」のいくつかの種類があるが3番目のリクエストを実行するには?これはブラウザの同時リクエスト制限だと思ったが、最初のリクエストが完了してから実行しないのはなぜですか?
実験的に「OutputCache」属性「PartTwo」上のuteは、期待通りに動作し、速く実行しています。これは、問題がIISではなく、その後のどこかに、そして私のアクションメソッドに当たる前に、そのことを示唆しています。ここで
はクロームネットワークプロファイラからのスクリーンショットです:ここで
がMvcMiniProfiler上のスクリーンショットである - 第三行/値を見て、それは私のコントローラのアクションコードを実行する前に、500ミリ秒を待っています。
コントローラコードは次のようになります。
public class HomeController : Controller {
public ActionResult Index() {
// do something here
return View();
}
public ActionResult PartOne() {
// do something here
return View();
}
public ActionResult PartTwo() {
// do something here
return View();
}
}
私のjavascript:
$(document).ready(function() {
$.ajax({
url: "/Home/PartOne",
cache: false,
success: function (data, textStatus, request) {
$("#TestContainerOne").html(data);
}
});
$.ajax({
url: "/Home/PartTwo",
cache: false,
success: function (data, textStatus, request) {
$("#TestContainerTwo").html(data);
}
});
});
マイindex.aspx:
(無長い計算、無デシベルの呼び出しなど)を、私は実際のコードを切り取らず、PartTwoのコードは非常に簡単ですが、<h2>Home page</h2>
<div id="TestContainerOne"></div>
<div id="TestContainerTwo"></div>
PartOne.ascx:
<h2>Part One</h2>
PartTwo.ascx:
<h2>Part Two</h2>
ヘルプ?
これは、ブラウザが特定のドメインを持つことができる同時要求の数とは何かを持っているかもしれません。この質問からの答えを見てください:http://stackoverflow.com/questions/561046/how-many-concurrent-ajax-xmlhttprequest-requests-are-allowed-in-popular-browse – Dismissile
私はそうは思わない。 3つの要求しかないので、理論的には、それらはバックツーバックで実行する必要があります。しかし、遅延はサーバー側で発生しています。 OutputCacheを使用した実験についての私の注釈を見てください。これは、ブラウザ/クライアントの制限に起因しないことを示唆しています。 –
お試しください:a)webでdebug = "false"を使ってビルドをリリースします。私は通常、古典的なdevのサーバーは、いくつかの薄れているいくつかの時間を見つけるように、IISまたはIIS Expressでコードを試してください(私はどこかに読んでいると思う)。 – Pedro