2016-07-25 10 views
0

Ich brauche ein Array, das von Zeit zu Zeit neu angeordnet werden sollte.Verarbeiten von großen Daten in JavaScript-Variablen: schlechte Praxis?

Die erwartete Größe des Arrays wird sagen wir Tausende von Zeilen 3-4 Spalten pro Zeile. Eine der Spalten wird eine ganze Zahl sein, die ein Sortierschlüssel ist. Die Sortierung wird jedes Mal ausgeführt, wenn der Benutzer eine Aktion ausführt (z. B. einmal in 10 Sekunden).

Früher würde ich diese Aktion einer Serverseite mit MySQL durchführen (die eine Reihe gut optimierter Sortiermethoden hat). Ich habe mich jedoch entschieden, die Möglichkeit zu berücksichtigen, dies auf einer Client-Seite (im Browser) durchzuführen.

Dies wäre eine große Ressourcenökonomie für meinen Server, aber ich habe keine Erfahrung mit einer solchen Art der Manipulation von Daten und ich weiß nicht, ob es den Browser des Benutzers hängt aufgrund der großen CPU oder Speicherauslastung.

Ich könnte dies in meinem Browser testen, aber wenn es für mich funktioniert, ist es keine Garantie, dass es in allen Browsern für alle Benutzer gut funktioniert.

So würde ich sagen, dass meine Frage ist: ist es eine gute Praxis, eine große Datenmenge im Browser des Benutzers zu manipulieren?

+0

Der Umgang mit großen Datenmengen ist in allen Umgebungen eine schlechte Praxis. Es verbraucht viele Ressourcen in jeder Umgebung und nicht nur im Browser des Benutzers. Sie müssen einen besseren/effizienteren Weg finden, sie zu manipulieren. Wenn Sie ein sortiertes Array haben, suchen Sie den richtigen Index, schieben Sie das Element an diese Position und vermeiden Sie das Umsortieren. – undefined

Antwort

1

Ich empfehle Ihnen, die Zeit zu messen, die benötigt wird, um einen Sortiervorgang auf Ihrem Array auf dem ausführenden Plattenmodell zu verarbeiten, das Sie ausgewählt haben. dann werden Sie feststellen, ob Sie einmal 1 zehn Sekunden sortieren können. Fragen Sie, ob Sie eine Methode zum Messen benötigen, ich werde als EDIT dieser Antwort veröffentlichen.

Was Ihre arcitecture, ich glaube, Sie rohen Array mit Ajax von Ihrem Server schieben können, und lassen Sie

EDIT den Benutzer sortieren sie in seinem Browser: ein exemple von Zeitmaß für die fullfill eines 10000000 pseudo- Zufällige Doppelungen und die Berechnung des Durchschnittswerts

var maxLength = 10000000; 
var array = []; 
var somme = 0; 
var moyenne = 0; 
var start = Date.now(); 
for (var i = 0; i < maxLength; i++) 
array.push(1023*i/23); 
for (var i = 0; i < maxLength; i++) 
    somme += array[i]; 
moyenne = somme/array.length; 
var stop = Date.now(); 
var lasting = stop - start; 
console.log(moyenne); 
console.log("executing time = " + lasting + " ms"); 
+0

Hallo, Kevin! Danke für Ihre Empfehlung! Ich dachte daran, auf einer Hardware zu messen, die ich habe, aber ich nehme an, dass es nicht präzise sein wird (ich würde sogar denken, dass diese Messung von Zeit zu Zeit variieren wird). Wenn Sie also Ihre Methode in EDIT einfügen können, würde ich mich freuen. Vielen Dank! –

Verwandte Themen