Rumah hujung hadapan web tutorial js AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法_jquery

AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法_jquery

May 16, 2016 pm 04:45 PM
amd jquery

AMD 模块

AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一个可用的模块化 JavaScript 的解决方案。

AMD 模块格式本身是一个关于如何定义模块的提案,在这种定义下模块和依赖项都能够异步地进行加载。它有很多独特的优势,包括天生的异步及高度灵活等特性,这些特性能够解除常见的代码与模块标识间的那种紧密耦合。目前它已经被很多项目所接纳,包括jQuery(1.7)。

RequireJS

RequireJS是一个工具库,主要用于客户端的模块管理。它可以让客户端的代码分成一个个模块,实现异步或动态加载,从而提高代码的性能和可维护性。它的模块管理遵守AMD规范。

jQuery 对AMD的支持

jQuery 1.7 开始支持将 jQuery 注册为一个AMD异步模块。有很多兼容的脚本加载器(包括 RequireJS 和 curl)都可以用一个异步模块格式来加载模块,这也就表示不需要太多 hack 就能让一切运行起来。可以看看jQuery 1.7 中的源码:

复制代码 代码如下:

// Expose jQuery as an AMD module, but only for AMD loaders that
// understand the issues with loading multiple versions of jQuery
// in a page that all might call define(). The loader will indicate
// they have special allowances for multiple jQuery versions by
// specifying define.amd.jQuery = true. Register as a named module,
// since jQuery can be concatenated with other files that may use define,
// but not use a proper concatenation script that understands anonymous
// AMD modules. A named AMD is safest and most robust way to register.
// Lowercase jquery is used because AMD module names are derived from
// file names, and jQuery is normally delivered in a lowercase file name.
if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
 define( "jquery", [], function () { return jQuery; } );
}

其工作的原理是,所使用的脚本加载器通过指定一个属性,即 define.amd.jQuery 为 true,来标明自己可以支持多个 jQuery 版本。如果有兴趣了解特定的实现细节的话,我们可以将 jQuery 注册为一个具名模块,因为可能会有这样的风险,即它可能被与其它使用了 AMD 的 define() 方法的文件拼合在一起,而没有使用一个合适的、理解匿名 AMD 模块定义的拼合脚本。

高版本的jQuery (1.11.1) 去掉了define.amd.jQuery判断:

复制代码 代码如下:

if ( typeof define === "function" && define.amd ) {
 define( "jquery", [], function() {
  return jQuery;
 });
}

Require.js中使用jQuery

Require.js中使用jQuery非常方便,简单配置就可以了,例如:

复制代码 代码如下:

// 简单的配置
require.config({

    // RequireJS 通过一个相对的路径 baseUrl来加载所有代码。baseUrl通常被设置成data-main属性指定脚本的同级目录。
    baseUrl: "./js",

    // 第三方脚本模块的别名,jquery比libs/jquery-1.11.1.min.js简洁明了;
    paths: {

        "jquery": "libs/jquery-1.11.1.min.js"

    }

});

// 开始使用jQuery 模块
require(["jquery"], function ($) {

    //你的代码
    //这里直接可以使用jquery的方法,比如:$( "#result" ).html( "Hello World!" );

});

Require.js中使用jQuery 插件

虽然jQuery的支持AMD的API, 这并不意味着jQuery插件也是和AMD兼容的。

一般的jQuery 插件格式:

复制代码 代码如下:
(function ($) {
    $.fn.m​​yPlugin = function () {
        //你自己的插件代码
    };
})(jQuery);

不过我们稍微修改一下就可以使用Require.js加载一个jQuery插件:
复制代码 代码如下:

;(function (factory) {
    if (typeof define === "function" && define.amd) {
        // AMD模式
        define([ "jquery" ], factory);
    } else {
        // 全局模式
        factory(jQuery);
    }
}(function ($) {
    $.fn.jqueryPlugin = function () {
        //插件代码
    };
}));

Require.js中使用jQuery UI组件

Require.js中使用jQuery UI组件也类似的,只要改造一下jQuery Widget Factory 代码就可以了,并且感觉jQuery UI的依赖关系加载就可以了。例如:

复制代码 代码如下:

(function (widgetFactory) {

    if (typeof define === "function" && define.amd) {
        // AMD模式
        define("jquery.ui.widget", ["jquery"], function () {

            widgetFactory(window.jQuery);

        });
    } else {
        // 全局模式
        widgetFactory(window.jQuery);
    }
}
(function ($, undefined) {

    // jQuery Widget Factory 代码

}));
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Muzium Dua Point: Semua Pameran dan Di Mana Mencari Mereka
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

ASUS memperkenalkan Adol Book 14 Air dengan AMD Ryzen 9 8945H dan dispenser kemenyan yang ingin tahu ASUS memperkenalkan Adol Book 14 Air dengan AMD Ryzen 9 8945H dan dispenser kemenyan yang ingin tahu Aug 01, 2024 am 11:12 AM

ASUS sudah menawarkan pelbagai komputer riba 14-inci, termasuk Zenbook 14 OLED (sekira $1,079.99 di Amazon). Kini, ia telah memutuskan untuk memperkenalkan Adol Book 14 Air, yang kelihatan seperti komputer riba 14-inci biasa pada bahagian mukanya. Walau bagaimanapun, meta yang tidak mencolok

Perisian Ryzen AI mendapat sokongan untuk pemproses Strix Halo dan Kraken Point AMD Ryzen baharu Perisian Ryzen AI mendapat sokongan untuk pemproses Strix Halo dan Kraken Point AMD Ryzen baharu Aug 01, 2024 am 06:39 AM

Komputer riba AMD Strix Point baru sahaja memasuki pasaran, dan pemproses Strix Halo generasi seterusnya dijangka akan dikeluarkan pada tahun hadapan. Walau bagaimanapun, syarikat itu telah menambah sokongan untuk APU Strix Halo dan Krackan Point kepada perisian Ryzen AInya.

AMD Radeon RX 7800M dalam OneXGPU 2 mengatasi prestasi GPU Komputer Riba Nvidia RTX 4070 AMD Radeon RX 7800M dalam OneXGPU 2 mengatasi prestasi GPU Komputer Riba Nvidia RTX 4070 Sep 09, 2024 am 06:35 AM

OneXGPU 2 ialah eGPU pertama yang menampilkan Radeon RX 7800M, GPU yang masih belum diumumkan oleh AMD. Seperti yang didedahkan oleh One-Netbook, pengeluar penyelesaian kad grafik luaran, GPU AMD baharu adalah berdasarkan seni bina RDNA 3 dan mempunyai Navi

Cip AMD Z2 Extreme untuk konsol pegang tangan dijangka pelancaran awal 2025 Cip AMD Z2 Extreme untuk konsol pegang tangan dijangka pelancaran awal 2025 Sep 07, 2024 am 06:38 AM

Walaupun AMD membuat khusus Ryzen Z1 Extreme (dan varian bukan Extreme) untuk konsol pegang tangan, cip itu hanya pernah ditemui dalam dua pegang tangan arus perdana, Asus ROG Ally (kurr. $569 di Amazon) dan Lenovo Legion Go (tiga). jika anda mengira R

Tawaran | Lenovo ThinkPad P14s Gen 5 dengan 120Hz OLED, 64GB RAM dan AMD Ryzen 7 Pro mendapat potongan 60% sekarang Tawaran | Lenovo ThinkPad P14s Gen 5 dengan 120Hz OLED, 64GB RAM dan AMD Ryzen 7 Pro mendapat potongan 60% sekarang Sep 07, 2024 am 06:31 AM

Ramai pelajar akan kembali ke sekolah hari ini, dan mungkin ada yang perasan bahawa komputer riba lama mereka tidak lagi berfungsi. Sesetengah pelajar kolej mungkin berada di pasaran untuk buku nota perniagaan mewah dengan skrin OLED yang cantik, dalam hal ini t

Beelink SER9: PC mini AMD Zen 5 padat diumumkan dengan iGPU Radeon 890M tetapi pilihan eGPU terhad Beelink SER9: PC mini AMD Zen 5 padat diumumkan dengan iGPU Radeon 890M tetapi pilihan eGPU terhad Sep 12, 2024 pm 12:16 PM

Beelink terus memperkenalkan PC mini baharu dan aksesori yang disertakan pada kadar simpulan. Untuk mengimbas kembali, lebih kurang sebulan telah berlalu sejak ia mengeluarkan dok EQi12, EQR6 dan EX eGPU. Kini, syarikat itu telah menumpukan perhatiannya kepada Strix baharu AMD

AMD mengumumkan kerentanan keterukan tinggi 'Sinkclose', menjejaskan berjuta-juta pemproses Ryzen dan EPYC AMD mengumumkan kerentanan keterukan tinggi 'Sinkclose', menjejaskan berjuta-juta pemproses Ryzen dan EPYC Aug 10, 2024 pm 10:31 PM

Menurut berita dari laman web ini pada 10 Ogos, AMD secara rasmi mengesahkan bahawa beberapa pemproses EPYC dan Ryzen mempunyai kelemahan baharu yang dipanggil "Sinkclose" dengan kod "CVE-2023-31315", yang mungkin melibatkan berjuta-juta pengguna AMD di seluruh dunia. Jadi, apakah itu Sinkclose? Menurut laporan oleh WIRED, kerentanan itu membenarkan penceroboh menjalankan kod hasad dalam "Mod Pengurusan Sistem (SMM)." Didakwa, penceroboh boleh menggunakan jenis perisian hasad yang dipanggil bootkit untuk mengawal sistem pihak lain, dan perisian hasad ini tidak dapat dikesan oleh perisian anti-virus. Nota dari tapak ini: Mod Pengurusan Sistem (SMM) ialah mod kerja CPU khas yang direka untuk mencapai pengurusan kuasa lanjutan dan fungsi bebas sistem pengendalian.

Mini PC Minisforum pertama dengan Ryzen AI 9 HX 370 dikhabarkan akan dilancarkan dengan tanda harga yang tinggi Mini PC Minisforum pertama dengan Ryzen AI 9 HX 370 dikhabarkan akan dilancarkan dengan tanda harga yang tinggi Sep 29, 2024 am 06:05 AM

Aoostar adalah antara yang pertama mengumumkan PC mini Strix Point, dan kemudiannya, Beelink melancarkan SER9dengan tanda harga permulaan yang melambung tinggi sebanyak $999. Minisforum menyertai parti dengan menggoda EliteMini AI370, dan seperti namanya, ia akan menjadi syarikat

See all articles