目錄
實作方法
一、預先載入的實作(兩種方法):
預先載入方法一:
預先載入方法二:
預先載入兩種方法比較:
二、透過mui.fire觸發自訂事件
文末福利:
首頁 web前端 html教學 如何優化mui清單跳到詳情頁

如何優化mui清單跳到詳情頁

Mar 19, 2018 pm 05:40 PM
清單 詳情 轉到

因為列表頁到詳情頁是多對一的形式,即列表頁的多個數據列表對應的是一個詳情頁,只是數據不同而;因此,可以在加載列表頁時預加載詳情頁,即創建一個詳情頁的webview,但是不顯示出來,點擊列表的時候在通過特定方法觸發詳情頁的事件,獲取響應數據,這種做法可以極大程度的縮短響應的時間。

實作方法

  1. 透過預先載入提前載入詳情頁;

  2. mui.fire 觸發詳情頁面指定事件,呼叫ajax更新資料;

一、預先載入的實作(兩種方法):

官方位址

預先載入方法一:

透過mui.init方法中的preloadPages參數進行設定。

mui.init({
  preloadPages:[
    {
      url:prelaod-page-url,      id:preload-page-id,
      styles:{},//窗口参数
      extras:{},//自定义扩展参数
      subpages:[{},{}]//预加载页面的子页面
    }
  ],
  preloadLimit:5//预加载窗口数量限制(一旦超出,先进先出)默认不限制});
登入後複製

在使用中,可能用不到那麼多的屬性,以下是我的使用案例:

mui.init({    preloadPages: [{
        url: 'account_detail.html',
        id: 'account_detail.html'
    }]
});
登入後複製

只需要設定url和id就可以,詳情頁需要的參數在使用mui.fire的時候傳過去;

預先載入方法二:

透過mui.preload方法預先載入。

var page = mui.preload({    url:new-page-url,    id:new-page-id,//默认使用当前页面的url作为id
    styles:{},//窗口参数
    extras:{}//自定义扩展参数});
登入後複製
預先載入兩種方法比較:

1.方法一為非同步建立預先載入頁面,並且可以同時建立多個頁面,但是由於是非同步的,因此不能立即取得到建立的webview對象,並且需要使用plus.webview.getWebviewById來取得到建立的webview;
2.方法二為同步建立預先載入頁面,可以在建立後同步取得到webview,即方法二的「page」變數;但是方法二隻能同時建立一個預先載入的頁面;

二、透過mui.fire觸發自訂事件

原理:兩個同時存在的webview之間可以透過mui.fire方法來觸發另一個webview中的自訂事件,因此,我們可以在詳情頁中建立一個自訂事件,監聽清單頁中的mui.fire方法。
mui.fire( target , event , data )
target:詳情頁(列表頁中預先載入的詳情頁)的webview;
event:詳情頁中監聽的自訂事件;
data:需要傳給詳情頁的參數;

1.在詳情頁建立並監聽自訂事件「account_bid_detail_fire」:

$.plusReady(function() {            /**
             * 实例化获取接口数据方法
             */
            var get_bid_detail = new GET_BID_DETAIL();            window.addEventListener('account_bid_detail_fire', function(event) {                //获得事件参数
                var id = event.detail.id;                    console.log(JSON.stringify(event.detail));                //触发ajax,根据id向服务器请求当前列表详情
                get_bid_detail.init(id);
            });
        });
登入後複製

mui.fire從清單頁傳的參數都在event.detail中,可以輸出具體查看;

2.在列表頁觸發“account_bid_detail_fire”事件:

mui(document.body).on("tap", ".account_bid_list", function() {//触发详情页面的account_bid_detail_fire事件
    var detail_webview = null;    if(!detail_webview) {        //判断webview是否存在
        detail_webview = plus.webview.getWebviewById("account_detail.html");
     }    //detail_webview是在列表页中预加载的页面;
    mui.fire(detail_webview, 'account_bid_detail_fire', {        id: _this.dataset.id
    });    //打开详情页面          
    mui.openWindow({       id: "account_detail.html",//详情页webview的id
       show: {           aniShow: 'none', //页面不显示动画
           duration: '0' //
        }
    });
});
登入後複製

接下來,在列表頁點擊列表的時候就可觸發詳情頁的「account_bid_detail_fire」事件,然後觸發詳情頁的ajax來更新請求的資料;

文末福利:

福利一:前端,Java,產品經理,微信小程序,Python等資源合集大放送:https://www.jianshu.com/p/e8197d4d9880
福利二:微信小程式入門與實戰全套詳細影片教學:https://www.jianshu.com/p/e8197d4d9880




#相關推薦:

#比較總結mui頁面跳轉方式之間的差異

##MUI實作上拉載入和下拉刷新的實例分享

mui js傳回刷新頁面的方法實例程式碼

以上是如何優化mui清單跳到詳情頁的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

詳解x220是否支援升級至Windows 11 詳解x220是否支援升級至Windows 11 Dec 27, 2023 pm 11:47 PM

x220是2012年聯想推出的筆記型電腦,距今已經快十年的時間了。作為一款舊機型,因此許多用戶想知道自己是否可以升級最新的win11系統,其實這款電腦是可以升級的,不過無法透過微軟推送的方法來升級。 x220可以升級win11嗎:答:x220可以升級win111、雖然x220可以升級win11,但無法透過微軟提供的方法升級系統。 2.因為微軟此次對於win11的硬體配置要求是非常高的,不滿足的話必須使用其他方法升級。 3.想要升級win11的用戶,可以先在本站下載一個win11一鍵重裝檔。 4

如何使用Python從清單中刪除方括號 如何使用Python從清單中刪除方括號 Sep 05, 2023 pm 07:05 PM

Python是一款非常有用的軟體,可以根據需要用於許多不同的目的。 Python可以用於Web開發、資料科學、機器學習等許多其他需要自動化處理的領域。它具有許多不同的功能,可以幫助我們執行這些任務。 Python列表是Python的一個非常有用的功能之一。顧名思義,清單包含您希望儲存的所有資料。它基本上是一組不同類型的信息。刪除方括號的不同方法許多時候,使用者會遇到清單項目顯示在方括號中的情況。在本文中,我們將詳細介紹如何去除這些括號,以便更好地查看您的清單。字串和替換函數刪除括號的最簡單方法之一是在

如何使用Python的count()函數計算清單中某個元素的數量 如何使用Python的count()函數計算清單中某個元素的數量 Nov 18, 2023 pm 02:53 PM

如何使用Python的count()函數計算清單中某個元素的數量,需要具體程式碼範例Python作為一種強大且易學的程式語言,提供了許多內建函數來處理不同的資料結構。其中之一就是count()函數,它可以用來計算清單中某個元素的數量。在本文中,我們將詳細介紹如何使用count()函數,並提供具體的程式碼範例。 count()函數是Python的內建函數,用來計算某

如何查證JBL耳機的真假訊息 如何查證JBL耳機的真假訊息 Dec 29, 2023 pm 10:54 PM

jbl耳機是許多聽音樂用戶的首選,好評如潮,但是對於假貨大家還是非常的害怕的,那麼jbl耳機怎麼查詢真偽來避免這個問題呢?下面就看看怎麼查詢吧。 jbl耳機怎麼查詢真偽:1、先進入「中國商品資訊驗證中心」。 2、然後輸入查詢碼,即可查看是否正確從而判斷是不是真貨。 3.也可以透過耳機聲音的清晰度來分辨。正牌的耳機聲音是非常的清晰的,音質也不會出現改變。假牌的耳機聲音會有很多的摻雜,音質也是特別的差。 4.大家可以將自己的耳機聲音開到最大,看看是不是很和諧,真耳機聲音都是一樣的。但是假耳機的聲音開

藍牙5.3要求手機支援嗎?詳細資訊請看 藍牙5.3要求手機支援嗎?詳細資訊請看 Jan 14, 2024 pm 04:57 PM

我們在買手機的時候,會看到手機參數裡有一個支援藍牙選項,有時候就會遇到購買的藍牙耳機和手機不匹配的情況,那麼藍牙5.3需要手機支援嗎,其實是不需要的。藍牙5.3需要手機支援嗎:答:藍牙5.3需要手機支援。不過只要支援藍牙的手機就可以使用。 1.藍牙是向下相容的,不過要使用對應版本就需要手機支援。 2.舉例來說,如果我們購買了一款使用藍牙5.3的無線藍牙耳機。 3.那麼,如果我們的手機只支援藍牙5.0,那麼在連線時使用的就是藍牙5.0。4、因此,我們依舊是可以使用這款手機連接耳機來聽歌的,但是速度不如藍

我們可以在Java列表中插入空值嗎? 我們可以在Java列表中插入空值嗎? Aug 20, 2023 pm 07:01 PM

SolutionYes,Wecaninsertnullvaluestoalisteasilyusingitsadd()method.IncaseofListimplementationdoesnotsupportnullthenitwillthrowNullPointerException.Syntaxbooleanadd(Ee)將指定的元素追加到此清單末尾的元素。類型參數E −元素的運行時類型。參數e −要追加到此列表的元

賽博朋克2077常見的問題解析 賽博朋克2077常見的問題解析 Jan 05, 2024 pm 06:05 PM

最近一款超級火爆的遊戲賽博朋克2077上線很多的用戶都爭先恐後的進行了下載體驗,但是在這過程中還是有著很多的問題的,今天就給你們帶來了玩賽博朋克2077常見問題,快來看看有沒有要的吧。玩賽博朋克2077常見問題:一、價格詳情:1、steam遊戲平台的購買價格為:298元人民幣。 2.epic遊戲平台的購買價格為:43美元=282元。 3.ps4遊戲端的購買價格為:400元+HKD以及380元+RMB盒裝。 4.俄區俄羅斯的購買價格為:172元人民幣。二、配置詳情:1、最低配置(1080P):GT

製作 iPhone 上 iOS 17 提醒應用程式中的購物清單的方法 製作 iPhone 上 iOS 17 提醒應用程式中的購物清單的方法 Sep 21, 2023 pm 06:41 PM

如何在iOS17中的iPhone上製作GroceryList在「提醒事項」應用程式中建立GroceryList非常簡單。你只需添加一個列表,然後用你的項目填充它。該應用程式會自動將您的商品分類,您甚至可以與您的伴侶或扁平夥伴合作,列出您需要從商店購買的東西。以下是執行此操作的完整步驟:步驟1:開啟iCloud提醒事項聽起來很奇怪,蘋果表示您需要啟用來自iCloud的提醒才能在iOS17上建立GroceryList。以下是它的步驟:前往iPhone上的「設定」應用,然後點擊[您的姓名]。接下來,選擇i

See all articles