受欢迎的博客标签

网站性能优化实战记录系列3-转移网站上的的css,js到cdn

Published

www.freeboygirl.com 302 122 B   1273ms blog 200 31.5 KB   1903ms

jquery-ui-1.10.3.custom.min.css 200 26.4 KB   2256ms

styles.css 200 121.8 KB   6373ms

jquery-1.10.2.min.js 0 0 B   525ms

jquery.validate.min.js 200 21.4 KB   2219ms

jquery.validate.unobtrusive.min.js 200 5.6 KB   1568ms

jquery-ui-1.10.3.custom.min.js 200 222.8 KB   6054ms

jquery-migrate-1.2.1.min.js 200 7.0 KB   2035ms

public.common.js 200 3.4 KB   2608ms

public.ajaxcart.js 200 3.9 KB   3758ms

hm.js?4f2e9a031c7d62adbdcbd3005b4e574a 200 8.6 KB   203ms

push.js 200 227 B   127ms
loading.gif 200 1.6 KB   1009ms
shopping-bag.png 200 1.1 KB   1218ms
logo.png 200 21.5 KB   2304ms
toggle-gray.png 200 2.8 KB   1210ms

rss.png 200 1.5 KB   968ms

toggle-white.png 200 1.0 KB   1029ms

social-sprite.png 200 4.3 KB   1935ms

ajax-loader-small.gif 200 673 B   1893ms

s.gif?l=http://www.freeboygirl.com/blog 200 0 B   50ms

hm.gif?cc=0&ck=1&cl=24-bit&ds=1024x768&et=0&ja=0&ln=en-US&lo=0&nv=1&rnd=249820274&si=4f2e9a031c7d62adbdcbd3005b4e574a&st=1&v=1.1.26&lv=1&tt=博客. FreeBoyGirl 200 43 B   3ms

诊断建议  

将本站的css和js转移到CDN公共库  

CDN公共库是指将常用的JS库存放在CDN节点,以方便广大开发者直接调用。与将JS库存放在服务器单机上相比,CDN公共库更加稳定、高速。 百度公共CDN为您的应用程序提供稳定、可靠、高速的服务,包含全球所有最流行的开源JavaScript库。

bootstrap 

https://www.bootstrapcdn.com/

直接访问 https://www.bootstrapcdn.com网站上面的库,改成下面的 。

https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css
https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js
https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.bundle.min.js

 

1.Microsoft http://www.asp.net/ajax/cdn

#Using_ASPNET_Ajax_from_the_CDN_20

2.https://www.bootcdn.cn/ 

各种版本的tinymce

https://www.bootcdn.cn/all/        查找页面
http://www.bootcdn.cn/tinymce/  
https://www.bootcdn.cn/jquery/

3.Microsoft CDN

ajax.aspnetcdn.com

https://ajax.aspnetcdn.com/ajax/jquery.validate/1.17.0/jquery.validate.js

4.jQuery CDN

http://code.jquery.com/

<script
  src="http://code.jquery.com/jquery-3.3.1.min.js"
  integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
  crossorigin="anonymous"></script>

5.cloudflare

https://cdnjs.cloudflare.com/

https://cdnjs.com/libraries/twitter-bootstrap/4.3.0
https://cdnjs.cloudflare.com/ajax/libs/bootswatch/4.0.0/cerulean/bootstrap.min.css
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha256-5+02zu5UULQkO7w1GIr6vftCgMfFdZcAHeDtFnKZsBs=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>

NopCommerce

\src\Presentation\Nop.Web\Themes\RootTheme\Views\Shared\EditorTemplates\RichEditor.cshtml

@using Nop.Core
@using Microsoft.AspNetCore.Http
@using Microsoft.Net.Http.Headers
@inject IHttpContextAccessor _httpContextAccessor
@{
    var allowJbimages = false;
    var random = CommonHelper.GenerateRandomInteger();

    var scheme = _httpContextAccessor.HttpContext.Request.Scheme;
    var host = _httpContextAccessor.HttpContext.Request.Headers[HeaderNames.Host];
    var domainUrl = scheme + "://" + host;
}


@section header
    {
    <style>

        pre {
            color: red;
            display: block;
            font-size: 87.5%;
            color: #212529;
        }

        .hljs {
            display: block;
            color: #f5f5f5 !important;
            padding: 0.5em;
            background: #303030 !important;
            color: #839496;
        }
    </style>
}



@*<script type="text/javascript" src="~/Content/tinymce/tinymce.min.js"></script>*@
@*<script type="text/javascript" src="~/Content/tinymce/langs/zh_CN.js"></script>*@
@*<script src="http://cdn.bootcss.com/tinymce/4.6.3/tinymce.min.js"></script>*@
@*<script src='https://cloud.tinymce.com/stable/tinymce.min.js'></script>*@


@*<script type="text/javascript" src="~/Content/tinymce/tinymce.min.js"></script>*@
@*<script type="text/javascript" src="~/Content/tinymce/langs/zh_CN.js"></script>*@
@*<script src="http://cdn.bootcss.com/tinymce/4.6.3/tinymce.min.js"></script>*@
@* <script type="text/javascript" src="~/lib/tinymce_5.1.6/js/tinymce/tinymce.min.js"></script> *@
<script src="//unpkg.com/[email protected]/tinymce.min.js"></script>

@*<script src='https://cloud.tinymce.com/stable/tinymce.min.js'></script> tinymce 4.x*@
@*<script src="https://cdn.tiny.cloud/1/no-api-key/tinymce/5/tinymce.min.js" referrerpolicy="origin"></script>*@ @* tinymce 5.x*@




<script>
    tinymce.init({
        selector: 'textarea.rte',//"textarea"根据你的选择器来指定,可以是textarea,可以绑定id(#···)或class(.····)
        height: 500,
        plugins: [ //配置插件:填写要使用的插件名称,可自己随意选择,但如果是上传本地图片image和imagetools是必要的
            'link media image codesample code paste textcolor toc  table'

        ],
        //工具框,r设置工具栏指定显示插件,这里我展示了三个工具栏,也可自己随意配置
        toolbar: 'undo redo |  code codesample blockquote |toc link image | paste | bold |  formatselect | forecolor backcolor emoticons  | table',
        toc_depth: 6, //https://www.tiny.cloud/docs-4x/plugins/toc/#toc_depth
        fontsize_formats: "8pt 10pt 12pt 14pt 18pt 24pt 36pt",
        autosave_interval: '20s',
        image_advtab: true,//开启图片上传的高级选项功能
        paste_as_text: true,
        table_default_styles: {
            width: '100%',
            borderCollapse: 'collapse'
        },
        //"relative_urls" required by jbimages plugin to be set to "false"
        relative_urls: false,
        relative_urls: false,
        remove_script_host: false,
        document_base_url: "@domainUrl",
        image_title: false, // 是否开启图片标题设置的选择,这里设置否
        automatic_uploads: true,//开启点击图片上传时,自动进行远程上传操作

        // 图片异步上传处理函数, without images_upload_url set, Upload tab won't show up
        images_upload_handler: (blobInfo, success, failure) => { // 图片异步上传处理函数
            var xhr, formData;

            xhr = new XMLHttpRequest();
            xhr.withCredentials = false;
            xhr.open('POST', '/RoxyFileman/UploadFilesAsync');//第一个参数是请求方式,第二个参数是请求地址,我这里配置的是struts的action,如果是其他(PHP等)的可这样配置:xxx.php

            xhr.onload = function () {
                var json;
                if (xhr.status !== 200) {
                    failure('HTTP Error: ' + xhr.status);
                    return;
                }
                json = JSON.parse(xhr.responseText);

                console.log(json);

                if (!json || typeof json.location !== 'string') {
                    failure('Invalid JSON: ' + xhr.responseText);
                    return;
                }
                success(json.location);
            };

            formData = new FormData();
            formData.append('file', blobInfo.blob(), blobInfo.filename());
            xhr.send(formData);
        }

    });
</script>

@Html.TextArea(string.Empty, new { @class = "rte" })


 

国内外CDN地址

https://blog.csdn.net/namepan1985/article/details/78303483