簡體   English   中英

縮小signalr / hubs文件

[英]minify the signalr/hubs file

我在我的應用程序中使用signalr並且正如此引用它:

<script src="/signalr/hubs" type="text/javascript"></script>

當然signalr是動態生成的javascript動態。 當我運行yslow來改善我的Web應用程序的性能時,它抱怨singalr / hubs沒有縮小。 當我點擊鏈接時,它顯示了js,小片段樣本:

/*!
 * ASP.NET SignalR JavaScript Library v2.1.1
 * http://signalr.net/
 *
 * Copyright Microsoft Open Technologies, Inc. All rights reserved.
 * Licensed under the Apache 2.0
 * https://github.com/SignalR/SignalR/blob/master/LICENSE.md
 *
 */

/// <reference path="..\..\SignalR.Client.JS\Scripts\jquery-1.6.4.js" />
/// <reference path="jquery.signalR.js" />
(function ($, window, undefined) {
    /// <param name="$" type="jQuery" />
    "use strict";

    if (typeof ($.signalR) !== "function") {
        throw new Error("SignalR: SignalR is not loaded. Please ensure jquery.signalR-x.js is referenced before ~/signalr/js.");
    }

    var signalR = $.signalR;

    function makeProxyCallback(hub, callback) {
        return function () {
            // Call the client hub method
            callback.apply(hub, $.makeArray(arguments));
        };
    }

    function registerHubProxies(instance, shouldSubscribe) {
        var key, hub, memberKey, memberValue, subscriptionMethod;

如果自動生成此文件,我該如何縮小它?

編輯

我還要澄清一下,我使用的是lcsk ,它可以在這里找到,它使用了signalr。 在這個包中有一個startup.cs文件,如下所示:

using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(RIMS.LCSK.Startup))]

    namespace RIMS.LCSK
    {
        public class Startup
        {
            public void Configuration(IAppBuilder app)
            {
                app.MapSignalR();
            }
        }
    }

我是否需要以某種方式告訴它在這一點上縮小? 我見過這個:

SignalR hub.js縮小 (但這似乎是使用global.asax文件)而且我也看到了這個:

https://github.com/SignalR/SignalR/issues/2403

但我不確定我需要用我所擁有的東西做什么。

查看可擴展性指南 它列出了一個IJavaScriptMinifier接口,您可以實現它以執行您正在尋找的內容。 (也許可以將它與優化/捆綁庫或其他第三方縮小器結合使用)。

正如可擴展性指南所示,您應該實現IJavaScriptMinifier由一個Minify方法組成的IJavaScriptMinifier 然后,將您的IJavaScriptMinifier實現類提供給SignalR依賴注入管道 ,SignalR將在需要時使用minifier。

下面是一個實現IJavaScriptMinifier的類的IJavaScriptMinifier ,其中MinifierMicrosoft Ajax Minifier

public class SignalrJavascriptMinifier : IJavaScriptMinifier
{
    public string Minify(string source)
    {
        return new Minifier().MinifyJavaScript(source);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM