網頁懶加載js,html懶加載

本文目錄一覽:

圖片懶加載和預加載

懶加載也叫延遲加載,指的是在長網頁中延遲加載圖像,是一種很好優化網頁性能的方式 。用戶滾動到它們之前,可視區域外的圖像不會加載。這與圖像預加載相反,在長網頁上使用延遲加載將使網頁加載更快。在某些情況下,它還可以幫助減少服務器負載。常適用圖片很多,頁面很長的電商網站場景中。

首先將頁面上的圖片的 src 屬性設為空字符串,而圖片的真實路徑則設置在data-original屬性中, 當頁面滾動的時候需要去監聽scroll事件,在scroll事件的回調中,判斷我們的懶加載的圖片是否進入可視區域,如果圖片在可視區內將圖片的 src 屬性設置為data-original 的值,這樣就可以實現延遲加載。

資源預加載是另一個性能優化技術,我們可以使用該技術來預先告知瀏覽器某些資源可能在將來會被使用到。 預加載簡單來說就是將所有所需的資源提前請求加載到本地,這樣後面在需要用到時就直接從緩存取資源 。

在網頁全部加載之前,對一些主要內容進行加載,以提供給用戶更好的體驗,減少等待的時間。否則,如果一個頁面的內容過於龐大,沒有使用預加載技術的頁面就會長時間的展現為一片空白,直到所有內容加載完畢。

img src=” 0044449030002.jpg” style=”display:none”/

script src=”./myPreload.js”/script

PreloadJS提供了一種預加載內容的一致方式,以便在HTML應用程序中使用。預加載可以使用HTML標籤以及XHR來完成。默認情況下,PreloadJS會嘗試使用XHR加載內容,因為它提供了對進度和完成事件的更好支持,但是由於跨域問題,使用基於標記的加載可能更好。

兩者都是提高頁面性能有效的辦法, 兩者主要區別是一個是提前加載,一個是遲緩甚至不加載。懶加載對服務器前端有一定的緩解壓力作用,預加載則會增加服務器前端壓力

轉:

網頁加載很慢JS或jquery堵塞,導致很久才彈出窗口

填寫完應該是你表單文件的問題。檢查/Search/index.asp 這個文件。

這個可能是你服務器ASP文件問題或者服務器IIS的問題,ASP文件運行慢。

Vue.js中能使用vue-router + webpack 實現懶加載嗎

可以,vue中提供了路由懶加載的方法,

const Proofread = (resolve) = {

import(‘components/proofread/proofread’).then((module) = {

resolve(module)

})

}

Proofread 為組件名

‘components/proofread/proofread’為路徑

這些代碼相當於普通加載的

impor Proofread from ‘components/proofread/proofread’

網頁打開很慢,加載js和css狀態是304 Not Modified,高手們,要怎麼解決?

304是使用緩存,不影響網頁,查服務器。

第一步、先確認網絡是否丟包,ping命令檢測。

第二步、檢測操作系統資源使用情況(http服務與數據庫)。

第三步、確認http服務是否hang死了,http緩存用滿的時候會這樣。

第四步、查數據庫鏈接是否正常。

第五步、檢查數據庫的慢查詢語句。

第五、以上步驟都沒問題,查程序bug去。

ps:如果使用的mysql,我建議評估業務量,重新調整數據庫使用的內存,別使用默認配置。

圖片懶加載實現原理?

圖片懶加原理

圖片懶加載的原理很簡單,就是我們先設置圖片的data-set屬性(當然也可以是其他任意的,只要不會發送http請求就行了,作用就是為了存取值)值為其圖片路徑,由於不是src,所以不會發送http請求。 然後我們計算出頁面scrollTop的高度和瀏覽器的高度之和,如果圖片舉例頁面頂端的坐標Y(相對於整個頁面,而不是瀏覽器窗口)小於前兩者之和,就說明圖片就要顯示出來了(合適的時機,當然也可以是 其他情況),這時候我們再將 data-set屬性替換為src屬性即可。

圖片懶加載實現步驟:

1. 在main.js中導入Vant中的Lazyload指令並註冊:

import Vue from ‘vue’import { Lazyload } from ‘vant’ // 導入懶加載模塊LazyloadVue.use(Lazyload) // 註冊懶加載指令

2. 為van-image設置lazy-load指令屬性

!– lazy-load設置圖片懶加載,是一個自定義指令 –van-image width=”90″ height=”90″ :src=”item2″ lazy-load/

求一段點擊左右滾動,支持懶加載的js代碼

html

head

style

.right_Frame .ProductSlide{width:792px; height:auto; border:solid 1px #e0e0e0; color:#666;}

.Slide_Screen{ width:790px; height:502px; }

.Slide_Screenp{width:790px; height:502px; }

.Slide_List{width:785px; height:110px; margin:10px 0; padding-left:7px;}

.Slide_List a{ float:left; margin-top:10px; border: 0;}

.Slide_List ul li{width:139px; height:107px; float:left; margin:0 auto;}

.Slide_List ul li a{width:139px; text-align:center; margin-top:10px;}

a {color:#666; text-decoration:none;font-size: 10pt;}

img {border: 0;}

/style

/head

body

div class=”Slide_Screen”

div class=”right_Frame”

div class=”ProductSlide”

div class=”Slide_Screen”

img id=”bigImg” src=”” /

/div

div class=”Slide_List”

a href=”javaScript:changePage(-1);” titlr=”向左”img src=”” alt=”向左”//a

ul id=”smallImgList”/ul

a href=”javaScript:changePage(1)” titlr=”向右”img src=”” alt=”向右”//a

/div

/div

div class=”Projection”/div

/div

/body

/html

script src=”jquery-1.4.js”/script

script type=”text/javascript”

var pimgs = [

{“small”:””, “big”:””, “desc”:”TVpad2“芯”升級,“智”變革”},

{“small”:””, “big”:””, “desc”:”操控流暢,極致體驗”},

{“small”:””, “big”:””, “desc”:”更多選擇,正版認證”},

{“small”:””, “big”:””, “desc”:”內置wifi,舒適體驗”},

{“small”:””, “big”:””, “desc”:”輕鬆打造客廳KTV”},

{“small”:””, “big”:””, “desc”:”互動遊戲,自由掌控”},

{“small”:””, “big”:””, “desc”:”網絡通話,全球暢聊”}

];

var pageNo = 1; // 當前頁碼

var pageSize = 5; // 每頁顯示張數

$(function(){

initImg(pageNo);

//loadImage();

});

// 預先下載圖片

function loadImage() {

for (var i = 0; i pimgs.length; i++) {

new Image().src = pimgs[i][“big”];

new Image().src = pimgs[i][“small”];

}

}

// 翻頁(op: -1表示向左翻,1表示向右翻)

function changePage(op) {

var left = -1; // 向左翻

var right = 1; // 向右翻

var pageSum = pimgs.length / pageSize; // 總頁數

if (op == right) {

if (pageNo pageSum) {

initImg(++pageNo);

}

} else if (op == left) {

if (pageNo 1) {

initImg(–pageNo);

}

}

}

// 顯示初始化

function initImg(pageNo) {

var start = (pageNo – 1) * pageSize;

var end = pageNo * pageSize;

if (end pimgs.length) {

end = pimgs.length;

}

$(“#smallImgList”).find(“li”).remove();

for (var i = start; i end; i++) {

var smallImg = ‘li’+

‘a href=”javaScript:void(0)”img id=”small” src=”‘+ pimgs[i][“small”] +'” big=”‘+ pimgs[i][“big”] +'” //a’+

‘a href=”javaScript:void(0)”‘+ pimgs[i][“desc”] +’/a’+

‘/li’;

$(“#smallImgList”).append(smallImg);

}

// 點擊小圖時顯示對應的大圖

$(“#smallImgList”).find(“li”).each(function(){

var $this = $(this);

var bigImg = $this.find(“#small”).attr(“big”);

$this.mousedown(function(){

$(“#bigImg”).attr(“src”, bigImg);

});

});

}

/script

通過js加載就實現了lazyload,希望能幫到你。

這個例子需要導入jquery才能正確運行。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/200805.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-06 11:28
下一篇 2024-12-06 11:28

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • QML 動態加載實踐

    探討 QML 框架下動態加載實現的方法和技巧。 一、實現動態加載的方法 QML 支持從 JavaScript 中動態指定需要加載的 QML 組件,並放置到運行時指定的位置。這種技術…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Python渲染HTML庫

    Python渲染HTML庫指的是能夠將Python中的數據自動轉換為HTML格式的Python庫。HTML(超文本標記語言)是用於創建網頁的標準標記語言。渲染HTML庫使得我們可以…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29
  • Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的解決方法

    本文將解決Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的問題。同時,給出一些相關示例代碼,以幫助讀者更好的理解並處理這個問題。 一、問題解…

    編程 2025-04-29
  • python爬取網頁並生成表格

    本文將從以下幾個方面詳細介紹如何使用Python爬取網頁數據並生成表格: 一、獲取網頁數據 獲取網頁數據的一般思路是通過HTTP請求獲取網頁內容,最常用的方式是使用Python庫r…

    編程 2025-04-28
  • 網頁防篡改的重要性和市場佔有率

    網頁防篡改對於保護網站安全和用戶利益至關重要,而市場上針對網頁防篡改的產品和服務也呈現出不斷增長的趨勢。 一、市場佔有率 據不完全統計,目前全球各類網頁防篡改產品和服務的市場規模已…

    編程 2025-04-28
  • t3.js:一個全能的JavaScript動態文本替換工具

    t3.js是一個非常流行的JavaScript動態文本替換工具,它是一個輕量級庫,能夠很容易地實現文本內容的遞增、遞減、替換、切換以及其他各種操作。在本文中,我們將從多個方面探討t…

    編程 2025-04-28
  • 類加載的過程中,準備的工作

    類加載是Java中非常重要和複雜的一個過程。在類加載的過程中,準備階段是其中一個非常重要的步驟。準備階段是在類加載的連接階段中的一個子階段,它的主要任務是為類的靜態變量分配內存,並…

    編程 2025-04-28

發表回復

登錄後才能評論