The offline processing here refers to doing some events offline in advance and not doing them while the application is running
In fact, the offline processing of the front-end can be seen in some tools, such as the background image in CSS, and some CSS tools During packaging processing, if the file size of the image is relatively small, the tool will read the file content and convert it into base64 and put it directly into the css file to reduce http requests.
Similarly, when using string templates, turn the string template into a function in js in advance to avoid generating the corresponding function during runtime
Let’s talk about other offline processing
Offline template Handling
Custom tags
Many front-end frameworks now support the way of writing custom tags, such as element based on vue. Let’s take its inputnumber as an example: http://element.eleme.io/#/en-US/component/input-number
<el-input-number v-model="num1" @change="handleChange" :min="1" :max="10"></el-input-number>
A custom el-input-number tag, the final generated html Yes
<div class="el-input-number"> <div class="el-input"> <input type="text" autocomplete="off" class="el-input__inner"> </div> <span class="el-input-number__decrease el-icon-minus is-disabled"></span> <span class="el-input-number__increase el-icon-plus"></span></div>
vue will replace the custom tags with the final HTML content. This process is done at runtime. In fact, this process can be handled offline through tools and does not need to be done while the program is running.
String template
String templates can be seen in many front-end pages, and there are many template engines. Take the template method in underscore as an example: https://github.com/jashkenas/underscore/blob/master/underscore.js #L1579, when generating a function, if there is no variable parameter, a with statement will be added. Usually we avoid using it. So is there any way to avoid passing variables and using the with statement? This can also be handled offline. For example, the template is as follows
<%for(var i=0;i<list.length;i++){%> <%=list[i].text%><%}%>
We can easily convert it into the following content through tools
<%for(var i=0;i<obj.list.length;i++){%> <%=obj.list[i].text%> <%}%>
This requires the use of tools similar to acorn, but it can definitely be done.
Some students say that this is wrong because the with statement is not running and there is no way to know where the variables in it get their values. Yes, but we can completely agree that all the variables used in the template should be passed explicitly when used
For example, there is a getUser() method on the window before removing the with
var tmpl='<%=getUser()%>'; _.template(tmpl,{});
At this time, it can work normally
Pass For offline tool processing, after removing with, the template becomes
var tmpl='<%=obj.getUser()%>'; _.template(tmp,{});
. This will no longer work. However, we can agree that everything used in the template should be passed explicitly when calling, thus avoiding some potential problems.
Of course, the best result of offline processing of this template string is to put a function directly there.
Css image processing
In our project, consider the following file structure
|____index.html |____index.css |____index.js
We usually package html and css into js files, because js files can be easily modularized. , css is attached to the js file. In this way, when js is loaded on demand, html and css are also loaded on demand, and no special processing is required for them.
Assume that they are finally packaged and the index.js is as follows
var Magix=require('magix'); var indexHTML='<div class="mp-et5-content">...</div>'; Magix.applyStyle('mp-ec5','.mp-et5-content{color:red}');
For more information, please refer to the packaging tool https://github.com/thx/magix-combine/issues/15.
The style is turned into a string and placed in the js file.
Let’s look at one thing: when using background images in CSS, in order to achieve best practices, we hope to use webp when supporting the webp suffix, use 2x images on high-definition screens, etc. If we use pure CSS to implement it, we need to write a lot of media queries and generate CSS code.
其实这个事情我们没办法离线处理,但我们可以这样做:书写css仍然是写最基础的背景图,不去考虑webp,2倍图等事情,也不需要写media query之类的。在打包时,把图片这块调用js函数在运行时动态处理
如前面文件结构中的,假设index.css中使用了一个背景图
.title{background-image:url(//cdn/a.png)}
我们打包到js中时,完全可以变成
var Magix=require('magix'); var ataptImg=function(img){ //处理webp 2倍图等 return img } Magix.applyStyle('mp-ec5','.mp-et5-title{background-image:url('+adaptImg('//cdn/a.png')+'}');
这样可以很方便的处理掉这些事情。

JavaScript is widely used in websites, mobile applications, desktop applications and server-side programming. 1) In website development, JavaScript operates DOM together with HTML and CSS to achieve dynamic effects and supports frameworks such as jQuery and React. 2) Through ReactNative and Ionic, JavaScript is used to develop cross-platform mobile applications. 3) The Electron framework enables JavaScript to build desktop applications. 4) Node.js allows JavaScript to run on the server side and supports high concurrent requests.

Python is more suitable for data science and automation, while JavaScript is more suitable for front-end and full-stack development. 1. Python performs well in data science and machine learning, using libraries such as NumPy and Pandas for data processing and modeling. 2. Python is concise and efficient in automation and scripting. 3. JavaScript is indispensable in front-end development and is used to build dynamic web pages and single-page applications. 4. JavaScript plays a role in back-end development through Node.js and supports full-stack development.

C and C play a vital role in the JavaScript engine, mainly used to implement interpreters and JIT compilers. 1) C is used to parse JavaScript source code and generate an abstract syntax tree. 2) C is responsible for generating and executing bytecode. 3) C implements the JIT compiler, optimizes and compiles hot-spot code at runtime, and significantly improves the execution efficiency of JavaScript.

JavaScript's application in the real world includes front-end and back-end development. 1) Display front-end applications by building a TODO list application, involving DOM operations and event processing. 2) Build RESTfulAPI through Node.js and Express to demonstrate back-end applications.

The main uses of JavaScript in web development include client interaction, form verification and asynchronous communication. 1) Dynamic content update and user interaction through DOM operations; 2) Client verification is carried out before the user submits data to improve the user experience; 3) Refreshless communication with the server is achieved through AJAX technology.

Understanding how JavaScript engine works internally is important to developers because it helps write more efficient code and understand performance bottlenecks and optimization strategies. 1) The engine's workflow includes three stages: parsing, compiling and execution; 2) During the execution process, the engine will perform dynamic optimization, such as inline cache and hidden classes; 3) Best practices include avoiding global variables, optimizing loops, using const and lets, and avoiding excessive use of closures.

Python is more suitable for beginners, with a smooth learning curve and concise syntax; JavaScript is suitable for front-end development, with a steep learning curve and flexible syntax. 1. Python syntax is intuitive and suitable for data science and back-end development. 2. JavaScript is flexible and widely used in front-end and server-side programming.

Python and JavaScript have their own advantages and disadvantages in terms of community, libraries and resources. 1) The Python community is friendly and suitable for beginners, but the front-end development resources are not as rich as JavaScript. 2) Python is powerful in data science and machine learning libraries, while JavaScript is better in front-end development libraries and frameworks. 3) Both have rich learning resources, but Python is suitable for starting with official documents, while JavaScript is better with MDNWebDocs. The choice should be based on project needs and personal interests.


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

Dreamweaver CS6
Visual web development tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

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.

Zend Studio 13.0.1
Powerful PHP integrated development environment

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool