Bei einem grösseren Webprojekt muss ich bei jedem Seitenaufruf wissen, in welche Sprache aktiv gewählt ist. Dies geschieht mit PHP über versch. Session-Werte. weiter muss ich jeweils wissen welche Sprachen existierten - diese werden pro Mandat (innerhalb des Projekts existieren verschiedene Auftritte die nicht immer dieselben Sprache haben). Dies kann ich aus einer Konfigurationsdatei ermitteln und speichere die Werte ebenfalls in einer Session. Die Variabeln enstehen aus verschiedenen Quellen (Session-Inhalt, Daten aus einer XML-Konfigurationsdatei, Requests [POST/GET])
Bsp:
$_SESSION[langId] = $getLangId;
$_SESSION[langVal] = $getLangValue;
$_SESSION[languages] = $getLanguages;
Nun frage ich mich wie sich das auf die Performance auswirkt; wie frage ich die Werte am besten ab, bzw. ermittle. Ist es Performanter wenn ich die Werte bei jedem Aufruf neu setze oder ist es geschickter wenn ich überprüfe ob die Werte sich geändert haben. Die Werte sind immer vorhanden und wechseln nicht bei jedem Seitenaufruf ...
Bsp:
if ($_SESSION[langId] != $getLangId || !$_SESSION[langId]) {
$_SESSION[langId] = $getLangId;
}
if ($_SESSION[langVal] != $getLangValue || !$_SESSION[langVal]) {
$_SESSION[langVal] = $getLangValue;
}
if ($_SESSION[languages] != $getLanguages || !$_SESSION[languages]) {
$_SESSION[languages] = $getLanguages;
}
Weiss jemand was dazu?
// CH
Seite 1 von 1
Php - Session Bei Jedem Aufruf überschreiben Oder Wert überprüfen Welche Art wirkt sich schlechter auf Performance aus
#1
geschrieben 06. Mai 2009 - 15:09
as wolves among sheep we have wandered [bathory, dis irae]
Anzeige
#2
geschrieben 07. Mai 2009 - 08:39
Bei mir kommt grade etwas die Frage auf weshalb du die Werte immer neu setzen willst.
Persönlich würde ich nur schauen ob der User einen Sprachwechsel "anfordert" (z.B. page.php?setLang=de). Ansonsten lasse ich die Session-Werte wie sie sind.
Bei der Performence wirst du jedoch bei keinem System wirkliche Unterschiede haben. So einfache If-Abfragen oder das setzen von Variablen kostet keine spürbare Zeit und erst wenn du z.B. eine Datenbankabfrage machst, hat man eine mögliche Bremse im Script - dann aber auch nur wenn die Datenbank überlastet ist.
Sowas kannst du z.B. auch an diesem Forum sehen. Die Downloadzeit, um den HTML-Code herunter zu laden ist größer als die dutzenden Datenbankabfragen und die Template-Verarbeitung. Wirklich "Killer" entstehen erst bei wirklich umfangreichen Schleifen mit hunderten Datenbankabfragen oder dem Verarbeiten von Dateien.
Persönlich würde ich nur schauen ob der User einen Sprachwechsel "anfordert" (z.B. page.php?setLang=de). Ansonsten lasse ich die Session-Werte wie sie sind.
if ( $_GET['setLang'] == "de" || $_GET['setLang'] == "en" ) { Sprachwerte holen.. $_SESSION[langId] = X; } elseif (!$_SESSION[langId]) { Standardwert nehmen $_SESSION[langId] = 'de'; }
Bei der Performence wirst du jedoch bei keinem System wirkliche Unterschiede haben. So einfache If-Abfragen oder das setzen von Variablen kostet keine spürbare Zeit und erst wenn du z.B. eine Datenbankabfrage machst, hat man eine mögliche Bremse im Script - dann aber auch nur wenn die Datenbank überlastet ist.
Sowas kannst du z.B. auch an diesem Forum sehen. Die Downloadzeit, um den HTML-Code herunter zu laden ist größer als die dutzenden Datenbankabfragen und die Template-Verarbeitung. Wirklich "Killer" entstehen erst bei wirklich umfangreichen Schleifen mit hunderten Datenbankabfragen oder dem Verarbeiten von Dateien.
#3
geschrieben 07. Mai 2009 - 12:43
Hallo Mudder,
die Werte können bei identischer URL ändern und das muss ich mitbekommen.
Dank Dir für Deine Ausführungen.
CH
die Werte können bei identischer URL ändern und das muss ich mitbekommen.
Dank Dir für Deine Ausführungen.
CH
as wolves among sheep we have wandered [bathory, dis irae]
Thema verteilen:
Seite 1 von 1