Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > Php soll JS erstellen oder verstehen was ist schneller
Antwort
 
Themen-Optionen
Alt 18.03.2006, 01:47   Nach oben    #1
Benutzer
 
Benutzerbild von Skinwalker
 
Registriert seit: 24.01.2006
Beiträge: 66
Standard Php soll JS erstellen oder verstehen was ist schneller

Folgendes Problem, ich habe ein JS-Script das gewisse Daten braucht um seine Funktion zu erfüllen, mehrere mittelgroße Arrays.

Nun habe ich 2 Möglichkeiten das zu realisieren, bisher ist es so gemacht das es eine externe JS-Datei gibt in der diese Arrays definiert sind (bzw es gibt mehrer solcher Definitionsdateien die unterschiedliche Stadien definieren und über eine php-datei wird entschieden welche davon nun tatsächlich included wird)

Diese JS-Dateien beschreiben konkret gesagt je eine Karte, nun baut ein Jscript aus diesen Dateien eine 5x5 Tabelle um eine Anfangsposition und bei Betätigung von Steuerungsbuttons (Hoch,rechts,runter,links) verändern die Hintergrundgrafiken der tabelle sich entsprechend.
Halt ein "ich laufe über eine große karte aber sehe nur einen ausschnitt"-Script

Nun braucht das php das die Seite aufbaut aber auch ein paar Werte (wirklcih nur ein paar genauergesagt die ersten 4 Zeilen der JS-Datei) der Datei wofür ich die ersten 4 Zeilen auslese und mit RegEx interpretiere.


Die Frage ist ob es sinnvoller wäre die Daten in einer DB zu speichern und per PHP generieren und einfügen zu lassen.

In einem Browsergamespezifischen Forum war der Großteil
der anderen Entwickler empört das ich auch nur daran denke JS mit Php zu parsen aber ich denke es macht weniger aufwand.
Oder?
Skinwalker ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.03.2006, 02:19   Nach oben    #2
Irgendwas mit e
 
Benutzerbild von Jojo
 
Registriert seit: 26.08.2005
Ort: Mannheim
Beiträge: 393
Standard

Wenn du mehrere Versionen benötigst, würde ich dir zu der Variante mit der Datenbank raten. Ganz einfach weil es dynamischer ist und du so redundanten Code vermeidest.

Zitat:
Zitat von Skinwalker
der anderen Entwickler empört das ich auch nur daran denke JS mit Php zu parsen
Dann würde ich mal ganz arg über die Qualifikation der anderen Entwicklern nachdenken.
Oder du erklärst ihnen, dass du keinen JS-Code parst, sondern lediglich einen String ausgibst, der dann von der Browser-Engine als JavaScript interpretiert wird.

Grüße,
Jojo
__________________
In the beginning was the word
and the word was content-type: plain/text

heute code ich, morgen debug ich und uebermorgen cast ich die koenigin auf int
Jojo ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.03.2006, 03:34   Nach oben    #3
Benutzer
 
Benutzerbild von Skinwalker
 
Registriert seit: 24.01.2006
Beiträge: 66
Standard

Zitat:
Oder du erklärst ihnen, dass du keinen JS-Code parst, sondern lediglich einen String ausgibst, der dann von der Browser-Engine als JavaScript interpretiert wird.
dann hast du mich falsch verstanden, eben das tu ich nicht. zumindest bisher.
bisher werden eben die ersten vier zeilen der fraglichen JS-Datei ausgelesen über file() innerhalb von Php und dann so interpretiert dass PHP Variablen mit den gleichen Werten erstellt und somit die Werte aus den JS-Dateien benutzen kann.

Die meinten eben auch das ich das in einer DB speichern soll und dann bei jedem aufrufen den JS-Code generieren lassen soll, nur zweifel ich eben daran das das schneller und somit sinnvoller ist.

Zitat:
Ganz einfach weil es dynamischer ist und du so redundanten Code vermeidest.
Dynamischer vielleicht aber doch insgesamt langsamer oder?
ich kann mir nicht vorstellen das eine viermaliges ausführen von (etwa)
PHP-Code:
preg_match($numeric_var,$line,$match);
        if(
$match[0]){
            
/*echo "<br>Numeric:";
            foreach($match as $m => $n){
                echo "<br>$m => $n";
            }*/
            /* etwaige Ausgabe: 
                Numeric:
                0 => var width = 10;
                1 => width
                2 => 10
            */
            
$js_array[$match[1]] = end($match);
        }
        
$match = array();
        
preg_match($string_var,$line,$match);
        if(
$match[0]){
            
/*echo "<br>String found:";
            foreach($match as $m => $n){
                echo "<br>$m => $n";
            }*/
            /* etwaige Ausgabe:
            String found:
                0 => var name = 'Hallo';
                1 => name
                2 => 'Hallo'
                3 =>
                4 =>
                5 => 'Hallo'
                6 => Hallo
            */
            
$js_array[$match[1]] = end($match);
        } 
länger dauern soll als das generieren von 100 Zeilen JS-Code der aus DB-Einträgen ausgelesen werden muss.
Skinwalker ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.03.2006, 14:14   Nach oben    #4
Irgendwas mit e
 
Benutzerbild von Jojo
 
Registriert seit: 26.08.2005
Ort: Mannheim
Beiträge: 393
Standard

Zitat:
Zitat von Skinwalker
länger dauern soll als das generieren von 100 Zeilen JS-Code der aus DB-Einträgen ausgelesen werden muss.
Das kommt darauf an, wie du dein System und die Datenbank organisiert hast.
musst du, wenn du die Variante über MySQL wählst, immer noch zwingend die JS-Datei auslesen?

Dann wär ich mir nämlich nich so ganz sicher.....


Um dein Problem nochmal zusammen zufassen:
Du veränderst per JavaScript ein JS-Array und möchtest dann beim Reload dieses Array auslesen und davon ausgehend dann PHP-Code produzieren.
Ist das richtig so?
Also wenn meine Figur auf der Karte zu einem bestimmten Punkt läuft, dann soll das JS ein Array setzen. Seh ich das richtig?
Und wie reloadest du dein Script?
Formular-Button?
Wenn ja, könntest du einfach JS seine Arrays in ein paar input-hidden-Felder setzen.
Ginge das nicht?
__________________
In the beginning was the word
and the word was content-type: plain/text

heute code ich, morgen debug ich und uebermorgen cast ich die koenigin auf int

Geändert von Jojo (18.03.2006 um 14:19 Uhr).
Jojo ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.03.2006, 14:28   Nach oben    #5
Erfahrener Benutzer
 
Benutzerbild von dejan_spasic
 
Registriert seit: 05.01.2006
Ort: Düsseldorf
Beiträge: 169
Standard

Dann lass die JS-Datein cachen. Und wenn sich was in der Datenbank ändern sollte, löscht du die JS-Datein. Falls keine JS-Dateien vorhanden sind, soll, mittles skript, die Datei erstmal erstellt werden.
__________________
Da wir alle in einem Boot sitzen, ist es gut, dass wir nicht alle auf einer Seite stehen... (mir unbekannt)
dejan_spasic ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.03.2006, 14:53   Nach oben    #6
Benutzer
 
Benutzerbild von Skinwalker
 
Registriert seit: 24.01.2006
Beiträge: 66
Standard

Zitat:
Du veränderst per JavaScript ein JS-Array und möchtest dann beim Reload dieses Array auslesen und davon ausgehend dann PHP-Code produzieren.
Ist das richtig so?
nein, in den JS-Dateien steht sowas etwa (sehr kleiner ausschnitt
Code:
var name = 'Dalaran Zentrum'
var width = 20;
var height = 20;
var main_bg = 'castle_exterior_mc/762.png';
var field_bg = new Array();
var field_layer1 = new Array();
var field_layer2 = new Array();
var field_layer4 = new Array();
// Reihe 0
    field_bg[0] = new Array();
    field_layer1[0] = new Array();
  field_bg[0][0] = 'castle_exterior_mc/778.png';
  field_layer1[0][0] = 'castle_exterior_mc/859.png';
  field_bg[0][1] = 'castle_exterior_mc/778.png';
  field_bg[0][2] = 'castle_exterior_mc/778.png';
  field_bg[0][3] = 'castle_exterior_mc/778.png';
ich bin mir nicht sicher was du verstanden hast..die seite wird nur einmal geladen bei jeder Bewegung des Spielers verändert ein jscript die Tabelleninhalte passend. so das das gefühl einer Bewegung entsteht, eben weil der hintergrund an einem "vorbeizieht" sozusagen.

Zitat:
Also wenn meine Figur auf der Karte zu einem bestimmten Punkt läuft, dann soll das JS ein Array setzen. Seh ich das richtig?
Und wie reloadest du dein Script?
Formular-Button?
da wird eben nicht reloaded sonst hätte ich es ganz mit php lösen können, dann bräuchte ich ja kein JS.. aber das bei jedem Schritt die ganze Seite neugeladen wird war mir zu heftig deshalb habe ich es ja in JS umgesetzt.

Zitat:
Dann lass die JS-Datein cachen. Und wenn sich was in der Datenbank ändern sollte, löscht du die JS-Datein. Falls keine JS-Dateien vorhanden sind, soll, mittles skript, die Datei erstmal erstellt werden.
aber die Sachen stehen doch nicht in der DB.. sondern in den JS-Dateien.
Skinwalker ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.03.2006, 15:25   Nach oben    #7
Irgendwas mit e
 
Benutzerbild von Jojo
 
Registriert seit: 26.08.2005
Ort: Mannheim
Beiträge: 393
Standard

Ok, langsam versteh ich was du meinst.
Aber was hat das mit PHP zu tun. Das verstehe ich nicht?
soll das PHP einfach nur den Startwert setzen?
Und dann wird kein PHP mehr benötigt?
Ist aber ein seltsames Browsergame, außer du willst ein Singleplayerspiel.
__________________
In the beginning was the word
and the word was content-type: plain/text

heute code ich, morgen debug ich und uebermorgen cast ich die koenigin auf int
Jojo ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 21.03.2006, 10:19   Nach oben    #8
Benutzer
 
Benutzerbild von Skinwalker
 
Registriert seit: 24.01.2006
Beiträge: 66
Standard

Zitat:
Aber was hat das mit PHP zu tun. Das verstehe ich nicht?
nun bisher wird die tabelle ganz durch JS erstellt. das heißt es gibt da wo die table mal hin soll ein div-Element das dann mit innerHTML gefüllt wird.

Und meine Überlegung ist halt das ich vermute (vermute, nicht weiß) das es schneller ginge die Grundtabelle mit PHP erstellen zu lassen, dafür braucht PHP halt die Ausmaße der Tabelle die ich mit einem RegEx auslesen würde (eine die ersten 3 Zeilen auslesen und interpretieren)
Ist nur die Frage ob es sinnvoll ist oder ausgemachter Blödsinn.

Zitat:
Und dann wird kein PHP mehr benötigt?
Ist aber ein seltsames Browsergame, außer du willst ein Singleplayerspiel.
naja das ganze ist schon "etwas" komplexer" als dass regelmäßig mit ajax (http-request) geschaut wird wer noch auf der gleichen karte im sichtradius ist und angezeigt wird.
abgesehen davon ist die Karte nur ein Teil des Spiels

die frage also weiterhin ungeklärt:
ist es sinnvoller die Daten in einer DB zu speichern und per PHP generieren und einfügen zu lassen damit JS die werte hat die in der DB stehen oder ist es sinnvoller die werte bei den anderen in der Js-Datei zu lassen und mit php zu interpretieren?

Geändert von Skinwalker (22.03.2006 um 11:43 Uhr).
Skinwalker ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
php variable in JS anzeigen Galge JavaScript und AJAX 9 28.03.2007 14:44
PHP 5.2 Kompilierung schlägt fehl Byrel Tools, Server, Betriebssysteme 0 03.11.2006 21:09
PHP 5.1.5, PHP 4.4.4 und PHP 5.2.0 RC2 veröffentlicht Ben Nachrichten 2 01.09.2006 16:05
Word Document mit PHP erstellen Julied64 PHP-Programmierung 12 23.03.2006 20:02
Neue PHP "release candidates": PHP 4.4.2 RC 1 und PHP 5.1 RC 6 Ben Nachrichten 1 21.11.2005 20:48


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:25 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44