Sicher - machen options
ein Array von Zeichenfolgen und verwenden Sie .join('')
statt +=
jedes Mal durch die Schleife. Geringfügige Leistungseinbußen beim Umgang mit einer großen Anzahl von Optionen ...
var options = [];
$.getJSON("/Admin/GetFolderList/", function(result) {
for (var i = 0; i < result.length; i++) {
options.push('<option value="',
result[i].ImageFolderID, '">',
result[i].Name, '</option>');
}
$("#theSelect").html(options.join(''));
});
Ja. Ich arbeite immer noch mit Streichern. Ob Sie es glauben oder nicht, das ist der schnellste Weg, ein DOM-Fragment zu erstellen ... Wenn Sie jetzt nur ein paar Optionen haben, ist es nicht wirklich wichtig - verwenden Sie die Technik Dreas demonstrates, wenn Sie den Stil mögen. Aber bedenken Sie, Sie rufen den internen HTML-Parser des Browsers i*2
mal auf, anstatt nur einmal, und ändern das DOM jedes Mal durch die Schleife ... mit einer ausreichenden Anzahl von Optionen. Am Ende zahlen Sie dafür, besonders in älteren Browsern.
Hinweis: Wie Richter darauf hinweist, wird diese auseinander fallen, wenn ImageFolderID
und Name
sind nicht encoded properly ...
Alte Geschichte hier weiß ich, aber für Googler wie mich, die gerade jetzt auf diese stolperte, wäre nicht noch schneller, wenn Sie ein ''-Element klonten, anstatt jedes zu erstellen? – tedders
Ich glaube nicht ... so oder so wird es einen neuen Gegenstand instanziieren. – quillbreaker
Schön! Obwohl ich denke, das Beispiel könnte klarer sein, wenn das Element "#dropdown" oder so genannt wurde, da es das tatsächliche Elternelement der Optionen besser widerspiegelt. – Anders