Wuu Posted June 11, 2015 Report Posted June 11, 2015 this.state.t.map(function(m, i) { this.state.t[i].show = ((JSON.stringify(m).toLowerCase().replace(/\s+/g, '').indexOf(v.target.value.replace(/\s+/g, '').toLowerCase())) > -1) ? true : false; }.bind(this)); Ir tabulāri dati, mēnesī sanāk ap ~+/-14k. Pie tāda apjoma, prasta meklēšana sāk tormazīt (200ms), nedaudz, tomēr nepatīkami. Princips ir vienkāršs, katram arraja elementam ir this.state.t.show ar iespēju true or false Tb, rādīt/nerādīt. Meklēšana notiek arraja elementa apkopojumā. Meklēšana notiek caur input'u (onChange) Redzu, kā var uzlabot ātrumu, bet varbūt ir iespējams vienkārši uzlabot pārbaudi. Nebūvējot neko pa virsu. Quote
0 waplet Posted June 11, 2015 Report Posted June 11, 2015 Parasti Regex ir visa lēnuma avots, skaties vai nevari ieekonomēt uz to? Quote
0 Wuu Posted June 11, 2015 Author Report Posted June 11, 2015 (edited) Tad kā man atbrīvoties no "space"? Tukšumiem? Emm.. nav jēga, imho tupi izņemot, nekas nemainās. Tad paliek tik salīdzinājums "indexOf", ir kaut kas ātrāks? Edited June 11, 2015 by Wuu Quote
0 jurchiks Posted June 12, 2015 Report Posted June 12, 2015 Man jau liekas, ka visu bremzi rada JSON.stringify(m). Vai tas tiešām ir nepieciešams? Quote
0 Wuu Posted June 13, 2015 Author Report Posted June 13, 2015 m ir arrays, pamēģināšu, ar for loopu katram cauri skriet un pamērīt ātrumu. Quote
0 martins256 Posted June 15, 2015 Report Posted June 15, 2015 1. Šis te ir konstants un to vajadzētu aprēķināt tikai vienu reizi nevis katrā iterācijā: v.target.value.replace(/\s+/g, '').toLowerCase() 2. .map() izmantošana šajā gadījumā ir bezjēdzīga, jo nekas netiek atgriezts. forEach() būtu daudz piemērotāks. 3. Ja whitespace novākšana ar .replace() nav īpaši nepieciešama, tad to ņem ārā. Strādās ātrāk. 4. Ja meklēšana notiek vairāk kā vienu reizi, tad labāk izveido atsevišķu masīvu ar JSON.stringify(m).toLowerCase().replace(/\s+/g, '') vērtībām. var search = v.target.value.replace(/\s+/g, '').toLowerCase(); this.state.t.forEach(function(m) { m.show = ((JSON.stringify(m).toLowerCase().indexOf(search)) > -1) ? true : false; }); Quote
Question
Wuu
Ir tabulāri dati, mēnesī sanāk ap ~+/-14k. Pie tāda apjoma, prasta meklēšana sāk tormazīt (200ms), nedaudz, tomēr nepatīkami.
Princips ir vienkāršs, katram arraja elementam ir this.state.t.show ar iespēju true or false
Tb, rādīt/nerādīt. Meklēšana notiek arraja elementa apkopojumā.
Meklēšana notiek caur input'u (onChange)
Redzu, kā var uzlabot ātrumu, bet varbūt ir iespējams vienkārši uzlabot pārbaudi. Nebūvējot neko pa virsu.
5 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.