Reperire jQuery quando una repository CDN non funziona

Reperire jQuery quando una repository CDN non funziona

Oggi il sistema CDN di Google che distribuisce jQuery sembra avere dei problemi. Ho sostituito per ora la copia di Google con una copia locale di jQuery. Tuttavia mi rendo conto che questa soluzione può essere perfezionata se si utilizza un semplice script PHP che prova a reperire jQuery da varie repository. Ecco come fare.

Lo script è molto semplice:


<?php
error_reporting(0);
header('Content-Type: text/javascript');
$jquery_versions = array('http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js',
					     'http://code.jquery.com/jquery-1.7.1.min.js',
					     'http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js',
					     'http://tuosito/js/jquery-1.7.1.min.js'
				   );
				   
$context = stream_context_create(array(
    'http' => array(
        'timeout' => 3 // secondi
    )
));

$i = -1;

do {

  $i++;
  $contents = file_get_contents($jquery_versions[$i], 0, $context);

  if (!empty($contents)) {
    echo $contents;
    
    break;
  }
} while($i < count($jquery_versions));
?>

Lo script passa in rassegna un array costituito da tre URL remoti che puntano a jQuery ed uno sul sito locale. Per ogni file, lo script imposta un timeout HTTP di 3 secondi. Se un file non è disponibile si passa al successivo, fino ad arrivare alla copia di riserva sul nostro sito.

Dovete semplicemente salvare il codice in un file PHP che potrete chiamare jquery.php e poi usarlo con un normalissimo elemento script, poichè l'output restituito è JavaScript.

Ho disabilitato gli errori nello script per evitare che l'output dei warning PHP venissero inseriti nel file.

Torna su