AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

Vue3 中如何做高性能的拼音搜索,提高用戶體驗?

來源: 責編: 時間:2024-05-24 17:25:20 220觀看
導讀下拉框搜索最近頁面中需要一個下拉框,并且支持搜索功能(搜索選項文本和拼音),這是一個挺普通的小功能,代碼如下:request.ts 先準備一些假的下拉框數據,并模擬請求:圖片Index.vue 中進行請求,并渲染下拉框,配置一些屬性,支持搜索

下拉框搜索

最近頁面中需要一個下拉框,并且支持搜索功能(搜索選項文本和拼音),這是一個挺普通的小功能,代碼如下:CF528資訊網——每日最新資訊28at.com

request.ts 先準備一些假的下拉框數據,并模擬請求:CF528資訊網——每日最新資訊28at.com

圖片圖片CF528資訊網——每日最新資訊28at.com

Index.vue 中進行請求,并渲染下拉框,配置一些屬性,支持搜索選項文本:CF528資訊網——每日最新資訊28at.com

圖片圖片CF528資訊網——每日最新資訊28at.com

可以看到實現了搜索文本,但是產品說還得支持搜索拼音呢~可以看到當前是不支持搜索拼音的。CF528資訊網——每日最新資訊28at.com

圖片圖片CF528資訊網——每日最新資訊28at.com

拼音搜索

拼音搜索其實也不難,用一些庫即可,比如 pinyin-pro。CF528資訊網——每日最新資訊28at.com

pnpm i pinyin-pro

我可以使用 pinyin-pro 這個庫,在獲取數據的時候為每一項的文本進行拼音翻譯,并放到字段 keywords 中。CF528資訊網——每日最新資訊28at.com

圖片圖片CF528資訊網——每日最新資訊28at.com

現在可以看到每一項都有一個 keywords 字段,里面存了每一項的文本和拼音。CF528資訊網——每日最新資訊28at.com

圖片圖片CF528資訊網——每日最新資訊28at.com

接著,在頁面中配置一下 Select 的搜索過濾函數。CF528資訊網——每日最新資訊28at.com

圖片圖片CF528資訊網——每日最新資訊28at.com

現在就支持了文本搜索和拼音搜索了。CF528資訊網——每日最新資訊28at.com

圖片圖片CF528資訊網——每日最新資訊28at.com

多個下拉框拼音搜索

上面例子是只有一個,那如果有多個下拉框呢?比如有兩個下拉框,我準備了兩個下拉框的假數據。CF528資訊網——每日最新資訊28at.com

圖片圖片CF528資訊網——每日最新資訊28at.com

接著在頁面中展示兩個下拉框:CF528資訊網——每日最新資訊28at.com

圖片圖片CF528資訊網——每日最新資訊28at.com

可以看到兩個下拉框的拼音數據耗時情況,其實當時頁面上不止兩個下拉框,大概有十幾個下拉框,且數據都很巨大,如果每一個下拉框都要接近200ms的耗時的話,那用戶體驗會很不好。CF528資訊網——每日最新資訊28at.com

圖片圖片CF528資訊網——每日最新資訊28at.com

性能優化

根據觀察,我發現我這個頁面的十幾個下拉框其實都有很多下拉項是相同的,這意味著,有一些項存在重復翻譯的問題。CF528資訊網——每日最新資訊28at.com

就比如這個“放米”,options1翻譯過一遍了,options2還翻譯一遍,這就導致了性能損耗。CF528資訊網——每日最新資訊28at.com

圖片圖片CF528資訊網——每日最新資訊28at.com

所以其實可以使用緩存來進行優化,思路就是:CF528資訊網——每日最新資訊28at.com

1、準備一個對象,key 是文本,value 是拼音CF528資訊網——每日最新資訊28at.com

2、每次翻譯的時候CF528資訊網——每日最新資訊28at.com

先檢測對象里是否能匹配到。CF528資訊網——每日最新資訊28at.com

能匹配到直接用,不能匹配到才調用 pinyin-pro 進行翻譯。CF528資訊網——每日最新資訊28at.com

圖片圖片CF528資訊網——每日最新資訊28at.com

這樣的話,能避免文本的重復翻譯,從而提升性能,由于 options2 有很多跟 options1 相同的項,所以 options2 很多項的翻譯都是直接取緩存的,數據處理的速度大大提升!CF528資訊網——每日最新資訊28at.com

圖片圖片CF528資訊網——每日最新資訊28at.com

其實這種方式也是有局限性的,如果每一個 options 的數據重合度都不高的話,那么這種優化方式也就沒啥意義了CF528資訊網——每日最新資訊28at.com

所以最好的方式還是叫后端翻譯好拼音,傳給前端。CF528資訊網——每日最新資訊28at.com

類似的場景

其實不止是上面舉的例子,還有其他項目中類似的場景,需要用到這種優化方式,比如:復雜的翻譯、復雜的數據處理。CF528資訊網——每日最新資訊28at.com

例子終究是例子,重要的是能舉一反三。CF528資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-90669-0.htmlVue3 中如何做高性能的拼音搜索,提高用戶體驗?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 來自 Rust 生態的強烈沖擊?談談 Leptos 在語法設計上的精妙之處

下一篇: 分享七個.NET開源、功能強大的快速開發框架

標簽:
  • 熱門焦點
  • K60 Pro官方停產 第三方瞬間漲價

    雖然沒有官方宣布,但Redmi的一些高管也已經透露了,Redmi K60 Pro已經停產且不會補貨,這一切都是為了即將到來的K60 Ultra鋪路,屬于廠家的正常操作。但有意思的是該機在停產之后
  • SpringBoot中使用Cache提升接口性能詳解

    環境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架從 3.1 開始,對 Spring 應用程序提供了透明式添加緩存的支持。和事務支持一樣,抽象緩存允許一致地使用各
  • 一篇文章帶你了解 CSS 屬性選擇器

    屬性選擇器對帶有指定屬性的 HTML 元素設置樣式。可以為擁有指定屬性的 HTML 元素設置樣式,而不僅限于 class 和 id 屬性。一、了解屬性選擇器CSS屬性選擇器提供了一種簡單而
  • 三分鐘白話RocketMQ系列—— 如何發送消息

    我們知道RocketMQ主要分為消息 生產、存儲(消息堆積)、消費 三大塊領域。那接下來,我們白話一下,RocketMQ是如何發送消息的,揭秘消息生產全過程。注意,如果白話中不小心提到相關代
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時候了!學弟,最近學習的怎么樣啊 了不起學弟:最近學習的還不錯,每天都在學習,每天都在進步! 了不起:那你最近學習的什么呢? 了不起學弟:最近在學習C
  • 小紅書1周漲粉49W+,我總結了小白可以用的N條漲粉筆記

    作者:黃河懂運營一條性教育視頻,被54萬人“珍藏”是什么體驗?最近,情感博主@公主是用鮮花做的,火了!僅僅憑借一條視頻,光小紅書就有超過128萬人,為她瘋狂點贊!更瘋狂的是,這
  • 消費結構調整丨巨頭低價博弈,拼多多還卷得動嗎?

    來源:征探財經作者:陳香羽隨著流量紅利的退潮,電商的存量博弈越來越明顯。曾經主攻中高端與品質的淘寶天貓、京東重拾“低價”口號。而過去與他們錯位競爭的拼多多,靠
  • AI芯片初創公司Tenstorrent獲三星和現代1億美元投資

    Tenstorrent是一家由芯片行業資深人士Jim Keller領導的加拿大初創公司,專注于開發人工智能芯片,該公司周三表示,已經從現代汽車集團和三星投資基金等
  • 三星折疊屏手機去年銷售近1000萬臺 今年目標定為1500萬

    7月29日消息,三星率先發力可折疊手機市場,在全球市場已經取得了非常亮眼的成績,接下來會進一步鞏固和擴大這一優勢。三星在推出Galaxy Z Flip5和Galax
Top