Okay, ich habe folgendes Problem:
Ich habe auf einer Seite mehrere Links, welche eine seite in einem anderen frame öffnen.
z.b.:
Link1
Link2
Link3
Klickt jetzt ein User auf z.b: Link1, öfnnet sich seiteB in frameX und füllt von da aus divA
bei Link2 öffnet sich seiteB in frameX und füllt von da aus divB
und bei einem Klick auf Link3 öffnet sich seiteC in frameX und füllt von a aus divC.
Das Problem ist: wenn jemand auf einen dieser Links klickt, dauert es ca 6 sekunden bis eine PHP-Funktion den entsprechenden Inhalt von fenster2 berechnet und danach auch angezeigt hat.
Wenn jetzt ein User während dieser 6 sekunden einen zweiten link anklickt, wird die selbe berechnung angestoßen nur für anderen inhalt. Da aber alle "Berechnungen" immer an frameX gesendet werden, würde dann die erste Berechnung abgebrochen werden und divA ewig auf das ergebnis warten (ein entsprechender "loding"-balken würde dann auch im wahrsten des Wortes ewig laden...).
Wie könnte man das vermeiden?
ich sehe auf anhieb folgenden Möglichkeiten:
1.in die Session eine Variable schreiben, z.b.:
$_SESSION['linkAktiv'] = "true";
erst fragt man dann ab, ob linkAktiv == "true" oder halt nicht gesetzt ist,
dann setzt man es gleich "true", dann kommt der berechnungs-code,
und am ende des berechnungscode setzt man die SESSION-Variable wieder auf "false".
soweit - so gut: geht aber auf irgendeinem grund bei mir nicht:
da das einfach nicht hinzubekommen war, obwohl ich die SessionID wietergebe, hab ich mir gedacht man könnte vielleicht folgendes tun:
2.das target aller anderen links ändern. am besten würde ich das an der stelle tun, wo $berechnung($var1,$var2,$var3); steht. Aber auch da müsste ich eine variable setzen... am besten in der session, nur das ging ja nicht...
und dann fällt mir nur noch ein:
3.transparente bilder in divs über den anderen links mit css-attribut "style" einblenden und nach der ausführung von der berechnung wieder ausblenden, aber ehrlich gesagt ist das ne ganz miese Lösung...
Was würdet ihr tun? Kann mir jemand sagen warum das mit der Session nicht geht? Sonst funktionieren alle Sachen mit der Session bei mir perfekt...
Ich habe auf einer Seite mehrere Links, welche eine seite in einem anderen frame öffnen.
z.b.:
Link1
Link2
Link3
Klickt jetzt ein User auf z.b: Link1, öfnnet sich seiteB in frameX und füllt von da aus divA
bei Link2 öffnet sich seiteB in frameX und füllt von da aus divB
und bei einem Klick auf Link3 öffnet sich seiteC in frameX und füllt von a aus divC.
Das Problem ist: wenn jemand auf einen dieser Links klickt, dauert es ca 6 sekunden bis eine PHP-Funktion den entsprechenden Inhalt von fenster2 berechnet und danach auch angezeigt hat.
Wenn jetzt ein User während dieser 6 sekunden einen zweiten link anklickt, wird die selbe berechnung angestoßen nur für anderen inhalt. Da aber alle "Berechnungen" immer an frameX gesendet werden, würde dann die erste Berechnung abgebrochen werden und divA ewig auf das ergebnis warten (ein entsprechender "loding"-balken würde dann auch im wahrsten des Wortes ewig laden...).
Wie könnte man das vermeiden?
ich sehe auf anhieb folgenden Möglichkeiten:
1.in die Session eine Variable schreiben, z.b.:
$_SESSION['linkAktiv'] = "true";
erst fragt man dann ab, ob linkAktiv == "true" oder halt nicht gesetzt ist,
dann setzt man es gleich "true", dann kommt der berechnungs-code,
und am ende des berechnungscode setzt man die SESSION-Variable wieder auf "false".
soweit - so gut: geht aber auf irgendeinem grund bei mir nicht:
Code:
if($_SESSION['linkAktiv'] == "false" || !isset($_SESSION['linkAktiv']))
{
$_SESSION['linkAktiv'] = "true";
$berechnung($var1,$var2,$var3);
$_SESSION['linkAktiv'] = "false";
}
da das einfach nicht hinzubekommen war, obwohl ich die SessionID wietergebe, hab ich mir gedacht man könnte vielleicht folgendes tun:
2.das target aller anderen links ändern. am besten würde ich das an der stelle tun, wo $berechnung($var1,$var2,$var3); steht. Aber auch da müsste ich eine variable setzen... am besten in der session, nur das ging ja nicht...
und dann fällt mir nur noch ein:
3.transparente bilder in divs über den anderen links mit css-attribut "style" einblenden und nach der ausführung von der berechnung wieder ausblenden, aber ehrlich gesagt ist das ne ganz miese Lösung...
Was würdet ihr tun? Kann mir jemand sagen warum das mit der Session nicht geht? Sonst funktionieren alle Sachen mit der Session bei mir perfekt...