2011-10-14 24 views
5

Desidero includere il file JS all'interno di un altro file JS, sul lato server, per impedire il copia-incolla e il caricamento di più file JS dal client. Proprio come include ('file.js') come farebbe PHP.Come posso includere file javascript lato server?

+0

Grazie per le risposte, ma voglio solo che sia fatto sul server, con un singolo file javascript caricato dal client. Preferisco girare .js in .php (o riscrivere) e usare PHP include e quindi header ('content-type: text/javascript). Qualche altra soluzione? –

risposta

2

As Supercharging javascript come suggerire l'articolo: con PHP puoi leggere tutti i tuoi file .js e creare un file big js che invierai in un unico pezzo.

questa è una semplificazione dell'esempio dall'articolo, solo per ottenere iniziare:

<?php 
define('SCRIPT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/script/'); 

$files = array(
    'jquery.js', 
    'myLib.js', 
    'site.js' 
); 

header('Content-Type: text/javascript'); 
foreach (files as $file) { 
    if (@readfile(SCRIPT_DIR . $file) === false) { 
     error_log("javascript.php: Error reading file '$file'"); 
    } 
} 
?> 

Io consiglio anche di leggere l'articolo completo Supercharging JavaScript in PHP per maggiori informazioni.

+0

Sì, è quello che sto pensando. Non ho bisogno di una libreria per questo. Posso farlo da solo in poche righe di codice. Grazie :) –

3

ci nessun è costruito in modo da includere altri file JavaScript da un file JavaScript ... ma è possibile aggiungere nel DOM - utilizzo>

function addJavascript(jsname,pos) { 
    var th = document.getElementsByTagName(pos)[0]; 
    var s = document.createElement('script'); 
    s.setAttribute('type','text/javascript'); 
    s.setAttribute('src',jsname); 
    th.appendChild(s); 
} 

Esempio:

addJavascript('newExternal.js','body'); 
+0

Certamente voterò per il codice carino, ma gestirò meglio i problemi di percorso, l'ordine dei caricamenti di script e la gestione delle dipendenze in un caricatore di script :) – Deeptechtons

0

È dovrà utilizzare un caricatore di script e mi piacerebbe raccomandare script.js di Dustin Diaz che lavora su Twitter. Project Page on Github. Ecco come lo si utilizza a patto di avere un plugin jQuery per essere caricato in una pagina qui è che cosa si dovrebbe fare

// load jquery and plugin at the same time. name it 'bundle' 
$script(['jquery.js', 'my-jquery-plugin.js'], 'bundle') 

// load your usage 
$script('my-app-that-uses-plugin.js') 


/*--- in my-jquery-plugin.js ---*/ 
$script.ready('bundle', function() { 
    // jquery & plugin (this file) are both ready 
    // plugin code... 
}) 


/*--- in my-app-that-uses-plugin.js ---*/ 
$script.ready('bundle', function() { 
    // use your plugin :) 
}) 

esempio è anche da pagina del progetto. Qui ci sono passi che si dovrebbe seguire

  1. carico il file prima
  2. includono ora lo script loader dipendenza che carica tutte le altre volevano script asincrono [il contenuto dello script loader dipendenza sarebbe come sopra]
  3. le script.js
1

JSfile = "1.js, 2.js, 3.js"

per loop

document.write();

Problemi correlati