PHP Classes

File: app/Resources/public/js/vendor/cssrefresh.js

Recommend this page to a friend!
  Classes of Manolo Salsas   Online PHP Image Transform   app/Resources/public/js/vendor/cssrefresh.js   Download  
File: app/Resources/public/js/vendor/cssrefresh.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Online PHP Image Transform
Application to do interactive image manipulation
Author: By
Last change:
Date: 4 years ago
Size: 2,786 bytes
 

Contents

Class file image Download
/* * CSSrefresh v1.0.1 * * Copyright (c) 2012 Fred Heusschen * www.frebsite.nl * * Dual licensed under the MIT and GPL licenses. * http://en.wikipedia.org/wiki/MIT_License * http://en.wikipedia.org/wiki/GNU_General_Public_License */ (function() { var phpjs = { array_filter: function( arr, func ) { var retObj = {}; for ( var k in arr ) { if ( func( arr[ k ] ) ) { retObj[ k ] = arr[ k ]; } } return retObj; }, filemtime: function( file ) { var headers = this.get_headers( file, 1 ); return ( headers && headers[ 'Last-Modified' ] && Date.parse( headers[ 'Last-Modified' ] ) / 1000 ) || false; }, get_headers: function( url, format ) { var req = window.ActiveXObject ? new ActiveXObject( 'Microsoft.XMLHTTP' ) : new XMLHttpRequest(); if ( !req ) { throw new Error('XMLHttpRequest not supported.'); } var tmp, headers, pair, i, j = 0; try { req.open( 'HEAD', url, false ); req.send( null ); if ( req.readyState < 3 ) { return false; } tmp = req.getAllResponseHeaders(); tmp = tmp.split( '\n' ); tmp = this.array_filter( tmp, function( value ) { return value.toString().substring( 1 ) !== ''; }); headers = format ? {} : []; for ( i in tmp ) { if ( format ) { pair = tmp[ i ].toString().split( ':' ); headers[ pair.splice( 0, 1 ) ] = pair.join( ':' ).substring( 1 ); } else { headers[ j++ ] = tmp[ i ]; } } return headers; } catch ( err ) { return false; } } }; var cssRefresh = function() { this.reloadFile = function( links ) { for ( var a = 0, l = links.length; a < l; a++ ) { var link = links[ a ], newTime = phpjs.filemtime( this.getRandom( link.href ) ); // has been checked before if ( link.last ) { // has been changed if ( link.last != newTime ) { // reload link.elem.setAttribute( 'href', this.getRandom( link.href ) ); } } // set last time checked link.last = newTime; } setTimeout( function() { this.reloadFile( links ); }, 1000 ); }; this.getHref = function( f ) { return f.getAttribute( 'href' ).split( '?' )[ 0 ]; }; this.getRandom = function( f ) { return f + '?x=' + Math.random(); }; var files = document.getElementsByTagName( 'link' ), links = []; for ( var a = 0, l = files.length; a < l; a++ ) { var elem = files[ a ], rel = elem.rel; if ( typeof rel != 'string' || rel.length == 0 || rel == 'stylesheet' ) { links.push({ 'elem' : elem, 'href' : this.getHref( elem ), 'last' : false }); } } this.reloadFile( links ); }; cssRefresh(); })();