Detailed explanation of how JavaScript uses advanced modular require.js
This article introduces the specific use of require.js, share it with everyone, and leave a note for yourself.
Require.js:
RequireJS is a very small javascript module loading framework, which is AMD (Asynchronous Module Definition, One of the best implementations of the asynchronous module loading mechanism) specification. The latest version of requireJS is only 14k compressed, which is very lightweight. It can also work in coordination with other frameworks. Using requireJS will definitely improve the quality of our front-end code.
First of all, let’s take a look at a normal page js loading
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/index02.js" ></script> </head> <body> <h1 id="this-nbsp-is-nbsp-a-nbsp-page">this is a page.</h1> </body> </html>
Running results:
At this time, if we don’t pop up correctly If the box is operated, the page will not load and there will be no page content. This is not the result we want to achieve.
Below we use require.js to operate:
index.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="js/require2.1.11.js"></script> <script type="text/javascript"> require(["js/index","js/index01"],function(){ console.log("当js加载成功后会执行的函数"); },function(){ console.log("当js加载失败后会执行的函数"); }); </script> </head> <body> </body> </html>
index.js
define(function(){ console.log("this is a test!"); function test(){ console.log("haha,i am a test!"); } test(); });
First of all, test02.js is no longer imported on the page , only requireJS is imported. Secondly, in JavaScript, we use the require() method, passing an array of parameters. The actual parameter is the [path + file name of the js file we want to import.
The running result at this time:
You can see it out, the content of the page has been displayed. Instead of waiting for the page to load after the js is completed, as we did before, the js code is run only after the page is loaded, which greatly improves the operating efficiency.
According to the above code, we can analyze the basic API of requirejs:
requireJS will define three variables: define, require, requirejs
require==requirejs, generally using require is shorter.
define is used to define a module
require to load dependent modules (references defined modules) and execute The callback function after loading
require(["js/index","js/index01"],function(){ console.log("当js加载成功后会执行的函数"); },function(){ console.log("当js加载失败后会执行的函数"); }); //第一个参数:定义require中的依赖,参数必须是数组形式,即使只有一个依赖,也必须使用数组形式传参。 //第二个参数:是一个回调函数,用来处理加载完毕后的逻辑,当所有模块加载完成后触发 //第三个参数:也是一个回调函数,用来处理模块加载失败后的情况。如上面代码,js中没有定义index01.js这个文件,所以出调用这个回调函数。
Load network file
Before, we loaded local js files, but sometimes we need to load files on the network, so how to load them? Now let's introduce how to load js files on the Internet. Let's take loading ajquery.js file as an example:
//百度cdn公共库jQuery地址: http://apps.bdimg.com/libs/jquery/2.1.1/jquery.js //jQuery官方地址: https://code.jquery.com/jquery-3.1.1.js //注意:网络上去取时不能加后缀,否则取不到 require.config({ paths : { //为网络上的库去一个名字:jquery "jquery" : ["https://code.jquery.com/jquery-3.1.1"] } }); // require(["jquery","js/test01","js/test02"],function(){ alert("页面加载成功~~"); },function(){ alert("页面加载失败~~") });Fetching js files on the Internet Note when writing the file: 1. The parameter of the config method is an object.
2. The value of paths is also an object.
3. When we choose a name for the library on the network, it is arbitrary, but it is recommended to A meaningful name, others can know what your network resources are through the name
4. The value of the library is an array, which means multiple writes can be written at the same time to prevent network abnormalities from being accessed
5. Pay special attention : The network resource path cannot have a suffix name, otherwise it will not be obtained
6. We can also get it from the network first. If it cannot be obtained, then obtain it locally to reduce the pressure on local services (it belongs to project optimization).
require.config({ paths : { //这样配置,减轻本地服务器的压力 "jquery" : ["https://code.jquery.com/jquery-3.1.1.js","js/jquery-1.8.3"] } }); // require(["jquery","js/test01","js/test02"],function(){ alert("页面加载成功~~"); },function(){ alert("页面加载失败~~") });Similarly, we can also add local configuration to paths:
require.config({ paths : { //这样配置,减轻本地服务器的压力 "jquery" : ["https://code.jquery.com/jquery-3.1.1","js/jquery-1.8.3"], //将本地的js文件同样配置,之后引用 "test01" : ["js/test01"], "test02" : ["js/test02"] } }); // require(["jquery","test01","test02"],function(){ alert("页面加载成功~~"); },function(){ alert("页面加载失败~~") });The require.config configuration appears repeatedly in the above example. If the configuration is added to each page, it will definitely look very special. No, requirejs provides a function called "master data". We first create a main.js:
require.config({ paths : { //这样配置,减轻本地服务器的压力 "jquery" : ["https://code.jquery.com/jquery-3.1.1","js/jquery-1.8.3"], //将本地的js文件同样配置,之后引用 "test01" : ["js/test01"], "test02" : ["js/test02"] } });and then use requirejs in the following way on the page:
<script type="text/javascript" src="js/require2.1.11.js" ></script> <script type="text/javascript" src="js/main.js" ></script> <script type="text/javascript"> require(["jquery","t1","t2"],function(){ alert("页面加载成功~~"); },function(){ alert("页面加载失败~~") }); </script>The official provides a method based on tag attributes:
<script data-main="js/main" src="js/require2.1.11.js" ></script>Place all configurations and imported js in main.js, so that only such a tag is needed on the page. The code demonstration is as follows:
//test01.js--定义一个js模块 define(function(){ function test(){ console.log("this is test01.js"); } test(); $("p").css("color","#DB7093"); });
//main.js--requirejs的全局配置 require.config({ paths:{ "jquery":["jquery-1.8.3"], "test":["test01"] }, shim:{ "test":["jquery"] } }); require(["test"],function(){ console.log("success!"); });
//index.html--此时,引入js文件只需一行代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" data-main = "js/main" src="js/require2.1.11.js" ></script> </head> <body> <p>i am liyanan and this is a testn Page.</p> </body> </html>
The above is the detailed content of Detailed explanation of how JavaScript uses advanced modular require.js. For more information, please follow other related articles on the PHP Chinese website!

JavaScriptisnotbuiltonCorC ;it'saninterpretedlanguagethatrunsonenginesoftenwritteninC .1)JavaScriptwasdesignedasalightweight,interpretedlanguageforwebbrowsers.2)EnginesevolvedfromsimpleinterpreterstoJITcompilers,typicallyinC ,improvingperformance.

JavaScript can be used for front-end and back-end development. The front-end enhances the user experience through DOM operations, and the back-end handles server tasks through Node.js. 1. Front-end example: Change the content of the web page text. 2. Backend example: Create a Node.js server.

Choosing Python or JavaScript should be based on career development, learning curve and ecosystem: 1) Career development: Python is suitable for data science and back-end development, while JavaScript is suitable for front-end and full-stack development. 2) Learning curve: Python syntax is concise and suitable for beginners; JavaScript syntax is flexible. 3) Ecosystem: Python has rich scientific computing libraries, and JavaScript has a powerful front-end framework.

The power of the JavaScript framework lies in simplifying development, improving user experience and application performance. When choosing a framework, consider: 1. Project size and complexity, 2. Team experience, 3. Ecosystem and community support.

Introduction I know you may find it strange, what exactly does JavaScript, C and browser have to do? They seem to be unrelated, but in fact, they play a very important role in modern web development. Today we will discuss the close connection between these three. Through this article, you will learn how JavaScript runs in the browser, the role of C in the browser engine, and how they work together to drive rendering and interaction of web pages. We all know the relationship between JavaScript and browser. JavaScript is the core language of front-end development. It runs directly in the browser, making web pages vivid and interesting. Have you ever wondered why JavaScr

Node.js excels at efficient I/O, largely thanks to streams. Streams process data incrementally, avoiding memory overload—ideal for large files, network tasks, and real-time applications. Combining streams with TypeScript's type safety creates a powe

The differences in performance and efficiency between Python and JavaScript are mainly reflected in: 1) As an interpreted language, Python runs slowly but has high development efficiency and is suitable for rapid prototype development; 2) JavaScript is limited to single thread in the browser, but multi-threading and asynchronous I/O can be used to improve performance in Node.js, and both have advantages in actual projects.

JavaScript originated in 1995 and was created by Brandon Ike, and realized the language into C. 1.C language provides high performance and system-level programming capabilities for JavaScript. 2. JavaScript's memory management and performance optimization rely on C language. 3. The cross-platform feature of C language helps JavaScript run efficiently on different operating systems.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

Dreamweaver CS6
Visual web development tools
