Oldalanként változó JS fájl


Talán a cikk neve egy kicsit érdekesen hangzik, de aki belesett az alábbi problémába, az egyből érteni fogja miért is adtam ezt a nevet.

Talán sokan olvastátok már Harder php switch get I. című írását. Számomra alapmű, mivel az oldalaim nagy részének fejlesztését ezen script segítségével indítom. Azonban nem megfelelő körültekintéssel érhetnek olyan váratlan meglepetések, amik megkeseríthetik a fejlesztést.

Adott egy csodaszép HTML template, ami olyan js scripteket futtat, amire nagyon nagy szükséged van. A probléma ott kezdődik, hogy minden egyes HTML fájl külön JS fájlokat kíván megnyitni. Az főoldal például egy diagramot és egy vektoros térképet, a másik oldal egy adattáblát…

Aki már alakított át HTML sablonokat php oldallá és használta a fent megnevezett Switch get eljárást, az tudhatja, hogy az index oldal tartalmi részén fog betölteni minden megnyitott oldal (már ha az útmutató szerint csinálunk mindent).

A probléma itt kezdődik. A scriptek minden esetben a forráskód alján jelennek meg. Ha viszont a főoldalról megnyitok egy adattáblával ellátott oldalt, akkor már a js-ek nem úgy fognak működni ahogy kellene, mivel a switch get miatt a megnyitott oldal scriptje lehet hogy nem a megfelelő helyen fog a forrásban megjelenni.

A megoldás nagyon egyszerű, mindig az adott oldal scriptjeit töltsük csak be, a többivel ne foglalkozzunk.

Első lépés. Nézd végig az összes oldalt, hogy melyik milyen scripteket használ. Azokat, amik minden oldalon megjelennek tedd bele egy corejs.php-fájlba.

Ezek után az index.php legaljára szúrd be az alábbi kódot:

<?php include “corejs.php”; ?>

A kód beszúrása után, az összes oldalról kitörölheted az összegyűjtött scripteket.

De mivel minden oldalon más és más script jelenik meg, ezért oldalakra lebontva kell megjeleníteni mindet, úgy hogy az más oldalakat ne zavarjon.

	<?php
	include “corejs.php”; // Fő js, ami minden oldalhoz kelleni fog
	if(empty($_GET["id"])) include “fooldaljs.php”;
	if($_GET["id"] === “lista”) include “listajs.php”;
	?>

A fenti kód a következőket csinálja:

Megnyitja a corejs.php fájlt, ami tartalmazza mindazt az js scriptet, amit használ minden oldal.

A következő sorban egy feltételhez kötöm a megnyitást. Ha a GET[id] értéke üres, akkor megnyitja azokat a scripteket, amik csak a főoldalra vonatkoznak.

A harmadik sorban szintén egy feltételhez kötöm a megjelenést. Ha a GET[id] értéke “lista”, akkor megnyitja a listajs.php fájlt.

A sort lehet folytatni a végtelenségig. Ugyanezt a műveletet használom a különböző oldalakon megjelenő, különböző css fájloknál is.

A fent leírtak szorosan kapcsolódnak a php switch get I. nevű leíráshoz!!

Kapcsolódó bejegyzések:
  • A cikk előzményeként olvasd el ezt a 2 leírást (php switch get I. és php switch get II.). A fórumon felvetődött a kérdés: hogy lehetne megoldani a nyelvválasztás …

  • Honlapkészítés során, ha a hagyományos módon – statikus HTML fájlokat gyártva – állsz neki a munkának, előbb vagy utóbb belefutsz abba a problémába, hogy elég ma …

  • Az alábbi leírásnak már van egy előzménye, melyet “php switch get I.” címmel megtaláltok a honlapon. Mivel e leírás annak továbbfejlesztett – és módszerben is új …

  • Még egy oldalon sem találkoztam egy igazából nem túl nagy munkával megoldható ötlettel: ha már PHP alapú dinamikus oldalt készítünk, akkor a design is legyen din …

  • A minap egy olyan oldalon dolgoztam, ahol több helyen is ki kellett íratni az olvasatlan levelek számát.  Ilyen és hasonló esetekre nagyon hasznos a Function has …

A cikket beküldte: Molesz ()

Szólj hozzá
a Oldalanként változó JS fájl c. bejegyzéshez

- Engedélyezett HTML elemek: <a> <em> <strong> <ul> <ol> <li>
- Forráskód beküldéséhez tedd a kódot ezek közé: <pre lang="php" line="1">Kódrészlet helye itt</pre>