Nach html Seitenaufbau javascript hinzufügen

Begrenz mal die Abfrage auf sagen wir 100 Einträge...
Ansonsten bau, wenn möglich, eine Pagination ein. Also nicht alles auf eine Seite, sondern mehrere Seiten machen (wie in einem Forum, wenn der Thread zu lang wird).
 
Zuerst einmal vielen dank für deine zahlreichen Tips.
Ich weiss das zu schätzen..!!

Das mit der Pagination hast du ja schon früher als Tip geschrieben. Und ich habe es auch schon überlegt ob es realisierbar wäre. Doch leider geht das eben nicht.
Die Schichtführer möchten gerne mehrere Aufträge gleichzeitig mit einem Klick abschliessen.
Ich habe deshalb eine Sortierung eingebaut die es erlaubt nur die abgeschlossenen oder eben nicht abgeschlossene Aufträge anzuzeigen.
Leider ist auch da die Anzeigezeit nicht akzeptabel. Ich konnte aber damit die Anzahl der angezeigten Aufträge auf knapp 500 reduzieren.

Weiter können die Schichtführer neben jeden Auftrag eine Checkbox auswählen für jeden Auftrag der abgeschlossen werden soll um dann über einen Button alle ausgewählten Aufträge mit einem Klick abzuschliessen (das ist auch neu programmiert).
Somit reduziert sich zwar die Wartezeit, ist aber nicht die dev. Lösung.

Warscheindlich muss ich woll auf das Javascript verzichten, weiss zwar noch nicht wie ich das umgehen kann, aber das werde ich morgen mal probieren.

Zu deinem letzten Tip die Abfrage auf 100 zu reduzieren. Das mach ich morgen früh, und schreib dann das Ergebniss hier noch rein.
 
So weiter gehts.

Die Beschränkung auf 100 Datensätze dauert ca. 3 Sekunden.

Ich habe aber gerade noch was sehr interessantes erfahren.
Ich war grad bei meinem Mitarbeiter und der hat noch nen älteren PC mit Win XP und darauf werden die 1900 Einträgen in ca. 6 Sekunden angezeigt.
Ich mit meinem neuen Win 7 PC (mit IE8) hab 26 Sek.
Ist da ev. was falsch konfiguriert, oder warum dauert das auf den neueren Rechnern so lange.
 
Das kann ich dir leider nicht sagen... Möglich wäre allerdings, dass der Apache auf dem neuen Rechner ein Problem hat mit den vielen Abfragen, bzw. nicht so viel gleichzeitig abarbeiten kann. Aber ich kann mir eigentlich nicht vorstellen, wo das Problem liegen soll. Vielleicht meldet sich noch ein anderer, ich bin raus. Sorry.
 
ich bin raus. Sorry.

Ich bin dann nochmal drin.

Ich vermisse bislang immer noch ein Beispiel HTML. Du hast zwar die JavaScript Funktionen gepostet, aber die werden ja nicht ausgeführt, so lange man nicht irgendwo klickt.

Ich bin eher an dem Dokument selbst interessiert. Benutzt du Tabellen? Die sind bekannt für eklatant lange Renderzeiten. Wie groß ist das Dokument? Du kannst mir gerne mal ein vollständiges HTML (im Browser einfach den Quelltext speichern) zu schicken. z.B. per PM.

Edit: Das mit den Tabellen ist eigentlich egal. Du sagst ja das Entfernen der "onclick" Attribute behebt das Problem. Also zeig mal ein paar Zeilen Beispiel HTML. Ich kann dir dann sagen, wie du dir die onclick Dinger sparen kannst.
 
Hallo CPoly.

Hier ist der reine HTML-Code des Kopfes und der ersten 2 Zeilen.
Dieser Code wiederholt sich genau 1900 mal (1900 Zeilen).
Deshalb bringt es nichts wenn ich hier die ganze Seite poste.
Bitte versteh mich nicht falsch aber die Produktdaten darf ich hier nicht posten, deshalb hab ich Sie durch Prod1 und Prod2 ersetzt.
Dafür bekommst du nun ein schön formatiertes HTML ;-)

HTML:
<html>
<header>
<title>PRA verwalten</title>
<style type="text/css">
 #table_m {border:solid 1px #000000; border-collapse:collapse; font-family:Arial; font-size:11;}
 #table_o {border:solid 0px #000000; border-collapse:collapse; font-family:Arial; font-size:11;}
 #th { border:1px solid black; }
 #td { border:1px solid black;}
 input {font-size:9;}
 #input_s {width=12; align:center; border-width:0px;}
 #sammelabschluss {position:absolute; left:187px;}
 </style>
 <script type="text/javascript"> 
function edit_window(pra) 
{
  fenster = window.open('pra_edit.php?pra='+pra, 'Fenster', 'width=400, height=330,  scrollbars=no, top=300, left=400');
  fenster.focus();
}
function open_window_newpra() 
{
	fenster = window.open('pra_new.php', 'Fenster', 'width=400, height=430, scrollbars=no, top=300, left=400');
	fenster.document.bgColor = "Gainsboro";
	fenster.focus();
}
function report_open(pra)
{
	URL='rep_interim_report.php?pra='+pra;
	window.location=URL;
}
</script>
 </header>
<body>
<form name=titel action=index.php><
<table id=table_m align=center>
<colgroup>
<col width=20>
<col width=70>
<col width=120>
<col width=300>
<col width=150>
<col width=50>
<col width=125>
</colgroup>
<tr>
	<th id=th>Abschl.</th>
	<th id=th><a href=pra.php?search_text=&search_valid=Offene+PRA&order=pra>Prozess-Nr.</a></th>
	<th id=th><a href=pra.php?search_text=&search_valid=Offene+PRA&order=mat_nr>Mat.-Nr.</a>
	</th><th id=th><a href=pra.php?search_text=&search_valid=Offene+PRA&order=mat_bez>Material-Bezeichnung</a></th>
	<th id=th><a href=pra.php?search_text=&search_valid=Offene+PRA&order=mat_info>Mat.-Info.</a></th>
	<th id=th><a href=pra.php?search_text=&search_valid=Offene+PRA&order=vs>Fert.-St.</a></th>
	<th id=th>Edit</th>
</tr>
<tr>
	<td id=td align=center><input type=checkbox name=abschprod1></td>
	<td id=td><font color=>Prod1</font><img src='info.png' width='14' height='14' onclick=report_open('prod1')></td>
	<td id=td><font color=>Prod-MatNr1</font></td>
	<td id=td><font color=>Prod-Name1</font></td>
	<td id=td><font color=></font></td>
	<td id=td><font color=>Prod-Info1</font></td>
	<td><input type=button name=edit value=Edit onclick=edit_window('prod1') ><input type=submit name=close[prod1] value=Abschliessen></td>
</tr>
<tr>
	<td id=td align=center><input type=checkbox name=abschprod2></td>
	<td id=td><font color=>Prod2</font><img src='info.png' width='14' height='14' onclick=report_open('prod2')></td>
	<td id=td><font color=>Prod-MatNr2</font></td>
	<td id=td><font color=>Prod-Name2</font></td>
	<td id=td><font color=></font></td>
	<td id=td><font color=>Prod-Info2</font></td>
	<td><input type=button name=edit value=Edit onclick=edit_window('prod2') ><input type=submit name=close[prod2] value=Abschliessen></td>
</tr>
</table>
</form>
</body>
</html>

Ich hoffe das reicht dir mal vorab.
Bin auf jedenfall gespannt auf deine Antwort.
 
Zuletzt bearbeitet:
Also, einen Teil hab ich verstanden.

Wenn ich es richtig gelesen habe, wird automatisch beim anklicken des Edit-Buttons Javascript gestartet und die Funktion gestartet.
Was ich nicht verstehe, wenn nun der Abschliessen-Button geklickt wird und somit eine andere Funktion aufgerufen werden sollte...wird dies nicht funktionieren....oder ?
Kannst du mir das ev. etwas genauer erklähren ?

Die Idee find ich super, habs halt nur noch nicht ganz verstanden.
 
Such mal nach "event delegation" oder "event bubbling". Egal wo du auf der Seite hin klickst, es kommt bei dem einen click-handler an, den ich definiert habe. Du kannst dort selbstverständlich sowohl den edit als auch den close button abfangen, ich habe mich in dem Beispiel auf edit beschränkt.
 
Such mal nach "event delegation" oder "event bubbling

Danke für den Tip. Habs nun kapiert.

Dein Beispiel hab ich nun etwas erweitert.
HTML:
document.onclick = function(e) 
{ 
	e = e || window.event;
	var target = e.target || e.srcElement; 
	var elementName = target.nodeName;

	if (elementName == 'INPUT')
	{
		var product = target.name && target.name.match(/^edit\[(\w+)\]$/); 
		if(product) 
		{ 
			window.open('pra_edit.php?pra=' + product[1], 'Fenster', 'width=400, height=330, scrollbars=no, top=300, left=400').focus(); 
		}
	}
	else if (elementName == 'IMG')
	{
		var product2 = target.name.match(/^prod\[(\w+)\]$/);
		URL='rep_interim_report.php?pra='+product2[1];
		window.location=URL;
	
	}
};

Der Umbau ist nun beendet und es funktioniert.
Einfach nur COOOOOOLLL.

Das beste an der Sache ist das der Aufbau der Seite mit 1900 Einträgen nur noch 4 Sekunden dauert. Also sogar schneller als vorher. :D :D :D :D

Beiden Postern vielen vielen Dank. Ich habe viel gelernt und kann das bestimmt auch an anderen Stelle weiter verwenden.
 
Zurück