簡體   English   中英

Javascript性能可伸縮性:用HTML中的100K文本搜索替換1000個字符串

[英]Javascript Performance Scalability: Search-Replace 1000 strings in 100K of text in HTML

在JavaScript中進行大規模搜索替換操作的最可擴展的方法是什么?

我有一個用例,我需要動態突出顯示100個以上的單詞,但是在一個大型的純文本頁面的特定DIV字段中,它將放大(例如,可能超過1000個)。 本質上是將自定義CSS / HTML鼠標懸停突出顯示到所有100多個特定單詞上。 從動態更改的潛在用戶提供的單詞列表中。 在用戶提交的文本較長(又稱為論壇)上。

我可以在客戶端(JS)或服務端(PHP)上進行操作,但是我目前正在嘗試在客戶端上降低Web服務器的負載。

除了這對我來說是搜索替換性能可伸縮性考慮因素。

在極端可伸縮性的情況下,我可能最終需要在100K文本上(總計10到100個div標簽之間)掃描1000個以上的單詞。 在任何時候,只有一些(例如,只有10%或20%匹配),但可能有1000多個單詞的搜索列表。

  1. 使用循環一次搜索每個關鍵字,然后迭代地應用CSS。
  2. 以編程方式生成一個復雜的正則表達式,可以一次性完成所有操作。
  3. 另一種技術

從歷史上看,從總體上看,在最廣泛的平台上擁有最廣泛的瀏覽器,總體上哪個執行速度更快?

看一下這個主題: 如何替換JavaScript中所有出現的字符串?

這不是經驗性的,但我認為(這兩者中)最好的選擇是在用<span>term</span>替換term的文本中觸發正則表達式替換,並在css中將span突出顯示。

為什么我認為這是這兩個中的最佳選擇:更少的數組操作,更少的瀏覽器內存管理。 Regex對象僅實例化一次,並將執行所有文本替換。

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM