Kopfballstar
Erfahrenes Mitglied
Hallo,
vielleicht kann mir jemand weiterhelfen. Ich habe auf eine Seite eine Ajax Funktionalität eingebaut.
Man bekommt (im schlechten Fall, und hier wird es langsam) z.B. 200 Datensätze angezeigt und kann diese dann markieren und an eine neue Position verschieben, also sortieren.
Die Daten werden per AJAX an PHP gesendet, ausgwertet, zurückgegeben und dann werden die Datensätze auf der Seite aktualisiert.
Und bei der Aktualisierung liegt das Problem. Wenn man zum ersten Mal sortiert rödelt das Script sehr lange, zu lange. Bei allen weiteren Sortierungen ist es dann sehr fix.
Ich habe das Script mal angehangen, vielleicht sieht ja jemand Optimierungsmöglichkeiten.
Das wäre super toll!
vielleicht kann mir jemand weiterhelfen. Ich habe auf eine Seite eine Ajax Funktionalität eingebaut.
Man bekommt (im schlechten Fall, und hier wird es langsam) z.B. 200 Datensätze angezeigt und kann diese dann markieren und an eine neue Position verschieben, also sortieren.
Die Daten werden per AJAX an PHP gesendet, ausgwertet, zurückgegeben und dann werden die Datensätze auf der Seite aktualisiert.
Und bei der Aktualisierung liegt das Problem. Wenn man zum ersten Mal sortiert rödelt das Script sehr lange, zu lange. Bei allen weiteren Sortierungen ist es dann sehr fix.
Ich habe das Script mal angehangen, vielleicht sieht ja jemand Optimierungsmöglichkeiten.
Das wäre super toll!
PHP:
function interpretAjax(result){
var count = result.length;
var color = "#E3F7FD";
var transparent = "transparent";
for(var i=0; i < count; i++){
/**
* Wenn es ein verschobener Artikel ist, background-color setzen
*/
document.getElementById("div_"+i).style.backgroundColor = result[i].move == 'true' ? color : transparent;
/**
* Positionsebeneninhalt
*/
document.getElementById("fill_"+i).title = result[i].item;
/**
* Values der Input Felder aktualisieren
*/
document.getElementById("newSort_"+i+"_company_id").value=result[i].company_id;
document.getElementById("newSort_"+i+"_shoptype").value=result[i].shoptype;
document.getElementById("newSort_"+i+"_item").value=result[i].item;
document.getElementById("newSort_"+i+"_ag_segment").value=result[i].ag_segment;
document.getElementById("newSort_"+i+"_style").value=result[i].style;
document.getElementById("newSort_"+i+"_sort").value=result[i].sort;
document.getElementById("newSort_"+i+"_status").value=result[i].status;
document.getElementById("newSort_"+i+"_manufacturer_description").value=result[i].manufacturer_description;
document.getElementById("newSort_"+i+"_description").value=result[i].description;
document.getElementById("newSort_"+i+"_brand").value=result[i].brand;
document.getElementById("newSort_"+i+"_file").value=result[i].file;
document.getElementById("newSort_"+i+"_validArticle").value=result[i].validArticle;
document.getElementById("newSort_"+i+"_img").value=result[i].img;
document.getElementById("newSort_"+i).value=i;
document.getElementById("div_"+i+"_move").value=result[i].move;
document.getElementById("newSort_"+i+"_old_sort").value=result[i].old_sort;
/**
* Anzeige des Artikels aktualisieren
*/
document.getElementById("img_"+i).src=result[i].img;
document.getElementById("text_"+i).innerHTML=result[i].sort+" | "+result[i].item+" | "+result[i].brand+" | "+result[i].manufacturer_description;
/**
* Befindet sich der Artikel im Sortiment
*/
if(result[i].validArticle == 'yes'){
document.getElementById("imgValid_"+i).src=result[i].validArticleImg;
document.getElementById("newSort_"+i+"_validArticleImg").value=result[i].validArticleImg;
}else{
document.getElementById("imgValid_"+i).src=result[i].notValidArticleImg;
document.getElementById("newSort_"+i+"_notValidArticleImg").value=result[i].notValidArticleImg;
}
/**
* Ist Artikel als 'entfernen markiert'
*/
document.getElementById("newSort_"+i+"_remove_article").checked = result[i].remove_article == 'true' ? true : false;
}
document.getElementById("fill_0").title = 'start';
}