WinFuture-Forum.de: Php - Session Bei Jedem Aufruf überschreiben Oder Wert überprüfen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Php - Session Bei Jedem Aufruf überschreiben Oder Wert überprüfen Welche Art wirkt sich schlechter auf Performance aus


#1 Mitglied ist offline   daarg 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.212
  • Beigetreten: 30. November 11
  • Reputation: 4
  • Geschlecht:Männlich

geschrieben 06. Mai 2009 - 15:09

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
as wolves among sheep we have wandered [bathory, dis irae]
0

Anzeige



#2 Mitglied ist offline   Mudder 

  • Gruppe: Mitglieder
  • Beiträge: 9
  • Beigetreten: 12. Dezember 07
  • Reputation: 1

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.

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.
0

#3 Mitglied ist offline   daarg 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.212
  • Beigetreten: 30. November 11
  • Reputation: 4
  • Geschlecht:Männlich

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
as wolves among sheep we have wandered [bathory, dis irae]
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0