国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Home Web Front-end HTML Tutorial Self-cultivation of a junior front-end engineer

Self-cultivation of a junior front-end engineer

Jul 11, 2016 am 08:44 AM

 Foreword

Optimization! Another optimization!

Cutting pictures serve as the link between the entire web application, connecting user behavior and machine performance. The ultimate meaning of optimization is to achieve the best balance between the two.

This is especially true for the loading of image resources. Today we will briefly talk about common image loading optimization methods in project development.

 Preload

1. Masking method

We all know that window.onload is actually the callback completed by the DOMContentLoaded event, which only completes the construction of the DOM tree. The downloading of resources such as CSS rendering and in-page images may not necessarily be completed. So if you render the page at this time, the page will be very ugly.

In order to solve this problem and improve the user experience from the perspective of design and behavior, we can add a more beautiful mask to the page before important resources such as images are completely downloaded, and a loading prompt will pop up to inform the user that the resource is loading. .Wait until the image is completely loaded before removing the mask and loading the animation.

The specific implementation ideas are as follows:

After window.onload is called, the mask will pop up first and the loading animation will be used to remind the user that loading is in progress

Download the IMG elements that need to be preloaded in the page var img = new Image(); img.src="xx.jpg"

When the image is downloaded, there will be an onload callback img.onload = function () {…}

Remove the loading animation and mask in this callback

This will provide users with a smooth and silky operating experience, and they no longer have to worry about users seeing those ugly pictures being downloaded that are not fully displayed.

Our slogan is: Either we won’t show it to you, or we’ll show you the best application scenario: Please use the situation where “there is an animation of the picture on the first screen, or the UI designer you are connecting with is extremely powerful” Use below

2. Coded Dafa

There are slight differences between the coding method and the masking method. The specific implementation ideas are as follows:

First prepare two pictures you need to preload, one is high-definition and the other is low-definition. For example, the size of girl_hd is 60kb. The other picture is girl, the size is 6kb.

The src address of the image tag that needs to be preloaded in the html page is a low-definition address

Because the low-resolution images are very small, they can be loaded quickly.

After window.onload is called, obtain the src (girl.jpg) of the img that needs high-definition replacement on the page, and use the src as a basis to splice the string ('_hd.jpg') to obtain the address of the high-definition image (girl_hd.jpg). Then download the high-definition image with var img = new Image(); img.src="girl_hd.jpg"

When the image is downloaded, there will be an onload callback img.onload = function(){…}

Replace the src of img in the page in the callback, so the image tag on the page is now

Our slogan is: If you want to watch uncensored high-definition, please look at the coded low-definition application scenario first: Please use it when "a large number of pictures appear on the first screen, and the size is not small"

 Lazy loading

If you carefully read the above preloading idea, you must slap me on the head: Whether it is the masking method or the coding method, this does not improve the loading speed of the project. In the end, the pictures that should be downloaded are still It doesn't have to be downloaded. Yes, lazy loading only changes the user's operating experience. In fact, the loading speed of the project does not increase. However, what we are talking about now is lazy loading, which actually improves the loading speed of the project.

What is lazy loading? To explain it in one sentence, it means loading images on demand.

Everyone must have visited Weibo. Weibo’s photo wall is the best example of lazy loading. There are not many photos displayed at the beginning. Only when the user pulls down to the bottom position will the photo wall be stretched and new pictures will be loaded.

Operation ideas:

Listen to the scroll event of the scroll bar (of course the touchmove event can also be used)

Every time the event is triggered, determine the location of the current photo wall

If the photo wall has been brushed to a critical point at the bottom

Js downloads new images, var img = new Image(); img.src="xx.jpg"

There is an onload callback after the download is completed img.onload = function(){…}

Insert the downloaded image into the page in the download completion callback

Of course, there are various lazy loading methods depending on the project. But the core remains the same: that is, when the page is initially loaded, only the minimum number of resources that meet the user's needs are loaded. Take the photo wall as an example. There may be 500 photos in the user's Weibo. If you load them when the page loads, 500 pictures, the user will be stuck until it explodes (because the background is always in the picture downloading state). If only 20 pictures are initially loaded when the page is loaded, and other pictures are loaded on demand through the user's own operations (scrolling down), it will greatly improve the smoothness of the project.

 Conclusion

Although the implementation principles of preloading and lazy loading are very simple, the inspiration given to me is indeed huge:

In addition to improving the user’s operating experience, the deep-seated core of preloading actually lies in: fragmented loading of resources, that is, preloading can actually appear at any time period. When the user’s mouse has not moved for a long time, I Can I secretly download two pictures? Can I secretly download two pictures when the user is not performing a lot of calculations? When the user is currently on a very streamlined login interface, can I secretly download a few pictures of the page to which he successfully logged in? Wait wait wait

The deep-seated core of lazy loading is: on-demand. The word on-demand has been deeply ingrained in my mind. Looking back now, many, many optimization methods revolve around on-demand. Load Js on demand, load images on demand, etc.

First of all, we must ensure the loading speed of the project in the first place, so that users can see the page and content in the shortest time.

Secondly, try to keep the current page as streamlined as possible and avoid meaningless loading. We only show it to users when they really need it.

The advantages and disadvantages of each are:

Preload:

Advantages: If you download the picture in advance, you can open it instantly when the picture is needed.

Disadvantages: Downloading images will affect the loading completion time of the project and the smoothness of the project's operation

Lazy loading lies in:

Advantages: Ensure that the projects loaded by users are the most streamlined and fastest, and the resources downloaded are the least

Disadvantages: If the user's operation triggers lazy loading, then you need to wait for the resource download to complete. At the same time, during the resource download, the operation fluency is reduced

In the final analysis, there is no silver bullet in project optimization. The efficiency of one part may lead to the inefficiency of another part. Copying the optimization methods from project A to project B may be worthless. Therefore, what we can do is to deeply understand the principles of these technologies and absorb experience in the project. Only by deeply understanding the advantages and disadvantages of each technology, and only by deeply understanding the needs and behavioral habits of users, can we Carry out the most suitable processing for specific projects and specific scenarios.

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How do I stay up-to-date with the latest HTML standards and best practices? How do I stay up-to-date with the latest HTML standards and best practices? Jun 20, 2025 am 08:33 AM

The key to keep up with HTML standards and best practices is to do it intentionally rather than follow it blindly. First, follow the summary or update logs of official sources such as WHATWG and W3C, understand new tags (such as) and attributes, and use them as references to solve difficult problems; second, subscribe to trusted web development newsletters and blogs, spend 10-15 minutes a week to browse updates, focus on actual use cases rather than just collecting articles; second, use developer tools and linters such as HTMLHint to optimize the code structure through instant feedback; finally, interact with the developer community, share experiences and learn other people's practical skills, so as to continuously improve HTML skills.

How do I use the  element to represent the main content of a document? How do I use the element to represent the main content of a document? Jun 19, 2025 pm 11:09 PM

The reason for using tags is to improve the semantic structure and accessibility of web pages, make it easier for screen readers and search engines to understand page content, and allow users to quickly jump to core content. Here are the key points: 1. Each page should contain only one element; 2. It should not include content that is repeated across pages (such as sidebars or footers); 3. It can be used in conjunction with ARIA properties to enhance accessibility. Usually located after and before, it is used to wrap unique page content, such as articles, forms or product details, and should be avoided in, or in; to improve accessibility, aria-labeledby or aria-label can be used to clearly identify parts.

How do I create a basic HTML document? How do I create a basic HTML document? Jun 19, 2025 pm 11:01 PM

To create a basic HTML document, you first need to understand its basic structure and write code in a standard format. 1. Use the declaration document type at the beginning; 2. Use the tag to wrap the entire content; 3. Include and two main parts in it, which are used to store metadata such as titles, style sheet links, etc., and include user-visible content such as titles, paragraphs, pictures and links; 4. Save the file in .html format and open the viewing effect in the browser; 5. Then you can gradually add more elements to enrich the page content. Follow these steps to quickly build a basic web page.

How do I minimize the size of HTML files? How do I minimize the size of HTML files? Jun 24, 2025 am 12:53 AM

To reduce the size of HTML files, you need to clean up redundant code, compress content, and optimize structure. 1. Delete unused tags, comments and extra blanks to reduce volume; 2. Move inline CSS and JavaScript to external files and merge multiple scripts or style blocks; 3. Simplify label syntax without affecting parsing, such as omitting optional closed tags or using short attributes; 4. After cleaning, enable server-side compression technologies such as Gzip or Brotli to further reduce the transmission volume. These steps can significantly improve page loading performance without sacrificing functionality.

How do I create checkboxes in HTML using the  element? How do I create checkboxes in HTML using the element? Jun 19, 2025 pm 11:41 PM

To create an HTML checkbox, use the type attribute to set the element of the checkbox. 1. The basic structure includes id, name and label tags to ensure that clicking text can switch options; 2. Multiple related check boxes should use the same name but different values, and wrap them with fieldset to improve accessibility; 3. Hide native controls when customizing styles and use CSS to design alternative elements while maintaining the complete functions; 4. Ensure availability, pair labels, support keyboard navigation, and avoid relying on only visual prompts. The above steps can help developers correctly implement checkbox components that have both functional and aesthetics.

How has HTML evolved over time, and what are the key milestones in its history? How has HTML evolved over time, and what are the key milestones in its history? Jun 24, 2025 am 12:54 AM

HTMLhasevolvedsignificantlysinceitscreationtomeetthegrowingdemandsofwebdevelopersandusers.Initiallyasimplemarkuplanguageforsharingdocuments,ithasundergonemajorupdates,includingHTML2.0,whichintroducedforms;HTML3.x,whichaddedvisualenhancementsandlayout

How do I use the  element to represent the footer of a document or section? How do I use the element to represent the footer of a document or section? Jun 25, 2025 am 12:57 AM

It is a semantic tag used in HTML5 to define the bottom of the page or content block, usually including copyright information, contact information or navigation links; it can be placed at the bottom of the page or nested in, etc. tags as the end of the block; when using it, you should pay attention to avoid repeated abuse and irrelevant content.

How do I use the tabindex attribute to control the tab order of elements? How do I use the tabindex attribute to control the tab order of elements? Jun 24, 2025 am 12:56 AM

ThetabindexattributecontrolshowelementsreceivefocusviatheTabkey,withthreemainvalues:tabindex="0"addsanelementtothenaturaltaborder,tabindex="-1"allowsprogrammaticfocusonly,andtabindex="n"(positivenumber)setsacustomtabbing

See all articles