2010-11-20 4 views
0

Um dynamische Werte an den js-Code zu übergeben, ist es besser, so zu verfahren?Übergeben von dynamischen Parametern an den js-Code - was ist besser?

Oder einen AJAX-Aufruf zur Laufzeit ausführen, um die Sitzungsvariable abzurufen und sie myVar zuzuordnen?

Was sind die Vor- und Nachteile?

Ich persönlich bevorzuge die AJAX-Methode. Es macht den Code besser im Falle von komplexen Array-Zuweisungen etc.

Möchten Expertenmeinungen erhalten.

Updates

Ich verstehe, dass die AJAX-Methode, alle HTTP-Anforderung zählt. Aber wenn wir gut definierte Funktionen innerhalb der Javascript-Dateien haben, müssten wir nur die Funktionsparameter verfügbar haben. Und die Parameter können in den Funktionsaufrufen weitergegeben werden, wann immer wir sie anrufen wollen, z. wie folgt aus: -

<a onclick="some_function('<?php echo $_SESSION['var'] ?>')"> 

Dies ist, wie ich es normalerweise tun und in meinem Projekt brauche ich selten sie in Javascript-Dateien inline zu übergeben. Und ich habe AJAX fordert für die Server-Seite Verarbeitung (natürlich, wenn es erforderlich ist).

Die Grundidee, die ich hier habe, ist separate js-Dateien intead von Inline-js-Skripten zu haben. Ich schaute auf this question. Ich würde definitiv keinen AJAX-Aufruf zum Abrufen jeder einzelnen Variablen machen (wie es von meiner Frage aus aussehen könnte), weil eine solche Situation nicht entstehen würde.

Danke.

Antwort

1

Ein AJAX-Aufruf ist eine weitere Anforderung, und die Ergebnisse sind nicht sofort verfügbar. Das direkte Schreiben von dynamischen Daten ist sofort verfügbar. In diesem Fall würde ich eher den Inline-Ansatz wählen.

PHP json_encode() könnte es relativ einfach machen, sogar große Arrays zu schreiben, ohne den Code viel zu überladen.

+0

Ich wollte eigentlich nicht eine AJAX-Anfrage zum Abrufen jeder einzelnen Server-Seite-Variable in das Javascript verwendet werden. Bitte überprüfe mein Update. –

+0

@sandeepan Ich sehe Ihren Standpunkt über separate JS-Skripte, und es macht Sinn - es ist der sauberste Weg. Ich persönlich würde wahrscheinlich immer noch dazu neigen, die dynamischen Bits in das Dokument "" zu legen, aber ich würde sagen, beide Ansätze sind in Ordnung –

+0

meinst du dynamische Bits in der JS-Code im Kopf des Dokuments? Aber ist das in Ihrem Fall unvermeidlich? Akzeptierst du, dass du nicht dem saubersten Weg folgst? :) –

1

Zuerst, beachten Sie, dass Sie nicht wirklich Javascript-Code dynamisch generieren; Sie verwenden PHP, um den Wert eines Arguments an den Browser zu übergeben.

Wenn dies die einzige (oder wichtigste) Funktionalität von PHP in Ihrem Code ist, ist es besser, AJAX zu verwenden und die Seite selbst nicht mit PHP zu generieren (d. H. Eine .html-Datei anstelle von .php verwenden). Grund: Funktioniert schneller, da der größte Teil des Inhalts statisch gespeichert wird.

Wenn Sie PHP verwenden, um den Großteil der Seite zu generieren, müssen Sie keine weitere Anfrage hinzufügen, wie Pekka erwähnt hat. Inline es einfach.

+0

@Little Bobby Tabellen Sie sind richtig ... den Titel bearbeitet. Bitte überprüfe mein Fragenupdate. Danke –

+0

@Little Bobby Tables Ich war falsch zu sagen, dass ich AJAX-Aufrufe für die Zuweisung dynamischer Parameter bevorzugen würde und denke, dass es nicht klug ist, AJAX-Aufrufe zu haben, weil jeder Ajax-Aufruf eine zusätzliche Anforderung verursacht. Wenn das Übergeben dynamischer Parameter die Hauptanforderung ist, wäre es besser, es so zu machen, wie ich es in meinem Frage-Update geschrieben habe. Eine AJAX-Anforderung wird in diesem Fall nicht benötigt, es sei denn, es gibt serverseitige Aufgaben. –

+0

@Sandeepan: Verwenden Sie PHP für alles andere als Session-Management? –