1

したがって、このプロジェクトではSystem.Web.Optimization、スタイルとスクリプトの読み込み時間を最小限に抑えるために、バンドル ( ) を実装しています。私のマネージャーは現在、読み込みに時間がかかりすぎるため、読み込み時間をさらに短縮する方法を探しています。彼は、その理由の 1 つはバンドルが適切に機能していないことだと考えています。そのため、開発者コンソールでスクリプトの読み込み時間を監視して、何らかの理由でキャッシュが有効になっていないかどうかを確認しました。 "同じページがリロードされるたびに。そのようです:

http://mypage.com/bundles/Kendo?v=Ly4JCrjDqtOYRbxqbD1I-ubxLYyNieOlYxSxoMmPLYA1&_=1420587597283
http://mypage.com/bundles/Kendo?v=Ly4JCrjDqtOYRbxqbD1I-ubxLYyNieOlYxSxoMmPLYA1&_=1420587659994
http://mypage.com/bundles/Kendo?v=Ly4JCrjDqtOYRbxqbD1I-ubxLYyNieOlYxSxoMmPLYA1&_=1420589994757

識別子は常に同じですが、最後のトークンは毎回異なります。そして、これがどこかで対処されているかどうかを確認しようとして周りを見回しましたが、何も見つかりませんでした. だから私が尋ねているのは、これは正常な動作であり、心配する必要はありませんか?

それが役立つ場合、これは実装されたコードです:

    public class BundleConfig
    {
        // For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
        public static void RegisterBundles(BundleCollection bundles)
        {
            BundleTable.EnableOptimizations = true;

            bundles.Add(new ScriptBundle("~/bundles/Kendo").Include(
                   "~/Scripts/kendo/2014.3.1119/kendo.all.min.js",
                   "~/Scripts/kendo/2014.3.1119/kendo.aspnetmvc.min.js"));
        }
    }

@Scripts.Render("~/bundles/Kendo")

それぞれの html ページのメタ セクションにあります。

4

1 に答える 1

1

There are many factors to consider when looking at load times.

まず、バンドルが何をしているのか不明な場合、またはリクエストごとにバンドルが生成されることを心配している場合は、IIS ログを調べて、バンドル リクエストが 304 レスポンス (コンテンツは変更されていません) を受け取っているかどうかを確認してください。バンドルが意図したとおりにブラウザによってキャッシュされていること、または実際に毎回新しいバンドルを作成している場合。

キャッシュをサポートするブラウザーを使用していることを確認してください。Chrome ではキャッシュをオフにして、結果を歪めるデバッグに役立てることができます。

また、リクエストごとにビューを見つけるために IO トリップを行うのではなく、Razor ビューのキャッシュを利用するために、web.config でコンパイル debug="false" を使用して実行していることを確認してください。

ビューの使用に関係なく、すべてのビューですべてのバンドルをやみくもにロードしていないことを確認します。たとえば、ユーザー入力の検証を処理するバンドルがある場合は、それらのビューがユーザー入力を取得しているときにのみロードされるようにし、読み取り専用ビューでロードされるバンドルを保存します。

ロード時間がどこで費やされているかを診断するのに役立つ Glimpse のようなものをお勧めします。潜在的な無駄がある場所を特定するのに役立ちます。

コントローラー レベルで Authorize 属性を使用する場合は、承認する必要のないユーザーの承認に時間を費やさないように、承認する必要のないすべてのアクションで Anonymous を使用してください。

最後に、IIS の設定をチェックして、必要なモジュールのみが読み込まれていること、およびコンテンツ配信を高速化するために圧縮機能が有効になっていることを確認します。

于 2015-01-07T08:52:04.667 に答える