Discussion:Perdu.com/Archives

Dernier commentaire : il y a 6 mois par Irønie dans le sujet Modification du code source de perdu.com
Autres discussions [liste]
  • Admissibilité
  • Neutralité
  • Droit d'auteur
  • Article de qualité
  • Bon article
  • Lumière sur
  • À faire
  • Archives
  • Commons

Untitled

modifier

Depuis quand faut il sourcer qu'un site est une blague ? Vous voulez une source qui dise "C'est un site facétieux " ? C'est ridicule. Tieum512 BlaBla 9 décembre 2008 à 14:10 (CET)Répondre

Quand je vois une demande de ref de ce genre, j'ai du mal à savoir s'il s'agit d'un sourceur extrémiste ou de quelqu'un qui parodie les sourceurs extrémistes. BOCTAOE. Ou pas. Barraki Retiens ton souffle! 9 décembre 2008 à 14:12 (CET)Répondre
C'est aucun des deux, juste quelqu'un qui ne comprend pas l'humour   -- Kyro Tok Tou Mi le 9 décembre 2008 à 14:13 (CET)Répondre

Modification du code source de perdu.com

modifier

Depuis un certain temps (quand ?) le code source de la page fait apparaître une section <script type="text/javascript">...</script>. Serait-ce mon FAI qui ajouterait ce code à mon insu ou bien est-ce le code qui a réellement changé ? — Le message qui précède, non signé, a été déposé par Chapouvalpin (discuter), le 13 mai 2014 à 19:01‎ CEST

Chez moi aussi… Ce code illisible n'apparaît pas, par contre, dans le code source du petit frère perdus.com — KiwiNeko14 Causettes ? 13 mai 2014 à 20:38 (CEST)Répondre

Pas si illisible que ça :

//<![CDATA[
(
function(){
var d=encodeURIComponent,
f=window,
g=document,
h="documentElement",
k="length",
l="prototype",
m="body",
p="&",
s="&ci=",
t=",",
u="?",
v="Content-Type",
w="Microsoft.XMLHTTP",
x="Msxml2.XMLHTTP",
y="POST",
z="application/x-www-form-urlencoded",
A="img",B="input",C="load",
D="oh=",E="on",F="pagespeed_url_hash",G="url=";

f.pagespeed=f.pagespeed||{};
var H=f.pagespeed,I=function(a,b,c){
	this.c=a;
	this.e=b;this.d=c;this.b=this.f();
	this.a={}
};
I[l].f=function(){
  return{
    height:f.innerHeight||g[h].clientHeight||g[m].clientHeight,width:f.innerWidth||g[h].clientWidth||g[m].clientWidth
  }
};
I[l].g=function(a){
	a=a.getBoundingClientRect();
	return{
    top:
	a.top+(void 0!==f.pageYOffset?f.pageYOffset:(g[h]||g[m].parentNode||g[m]).scrollTop),
	left:
	a.left+(void 0!==f.pageXOffset?f.pageXOffset:(g[h]||g[m].parentNode||g[m]).scrollLeft)
  }
};
	I[l].h=function(a){
		if(0>=a.offsetWidth&&0>=a.offsetHeight) 
		  return!1;
		a=this.g(a);
		var b=a.top.toString()+t+a.left.toString();
		if(this.a.hasOwnProperty(b))
		  return!1;
		this.a[b]=!0;
		return a.top<=this.b.height&&a.left<=this.b.width
    };
	I[l].i=function(a){
	  var b;
	  if(f.XMLHttpRequest)
	    b=new XMLHttpRequest;
	  else if(f.ActiveXObject)
	    try{
			b=new ActiveXObject(x)
			} catch(c) {
				try {
					b=new ActiveXObject(w)
				} catch(e){}
			}
			if(!b)
			  return!1;
			b.open(y,this.c+(-1==this.c.indexOf(u)?u:p)+G+d(this.e));
			b.setRequestHeader(v,z);
			b.send(a);
			return!0
		};
		I[l].k=function(){
		  for(var a=[A,B],b=[],c={},e=0;e<a[k];++e)
		  for(var q=g.getElementsByTagName(a[e]),n=0;n<q[k];++n){
		    var r=q[n].getAttribute(F);
			r&&(q[n].getBoundingClientRect&&this.h(q[n]))&&!(r in c)&&(b.push(r),c[r]=!0)
		  }
		  if(0!=b[k]){
		    a=D+this.d;a+=s+d(b[0]);
		    for(e=1;e<b[k];++e){c=t+d(b[e]);if(131072<a[k]+c[k])break;
		    a+=c
		}H.criticalImagesBeaconData=a;this.i(a)}};H.j=function(a,b,c){
		  if(a.addEventListener)
		    a.addEventListener(b,c,!1);
		  else if(a.attachEvent)
		    a.attachEvent(E+b,c);
		  else{
		    var e=a[E+b];a[E+b]=function(){
			  c.call(this);e&&e.call(this)
			}
		}
	};
	H.l=function(a,b,c){
		var e=new I(a,b,c);
		  H.j(
			f,
			C,
			function(){
			  f.setTimeout(function(){e.k()},0)
			}
                  )
	};
	H.criticalImagesBeaconInit=H.l;
}
)();
	pagespeed.criticalImagesBeaconInit('/mod_pagespeed_beacon','http://www.perdu.com/','yT-lkVeHbT');
//]]>

Par contre, ce que ça fait… asr (discuter) 17 juillet 2014 à 14:19 (CEST)Répondre

En remplaçant les noms des variables par ce qui est disponible en code et les noms de méthodes par un bla+descriptif de ce qui y est fait, il me semble s'agir d'envoyer une requête vers un service d'instrumentation (mod_pagespeed_beacon) pouvant inclure des données de dimension (page, corps de page, éléments).
//<![CDATA[
(
function () {
	window.pagespeed = window.pagespeed || {}; //Assure l'initialisation de l'objet window.pagespeed
	var viewModel = function (mod_pagespeed_beacon, url, key) {
		this.mod_pagespeed_beacon = mod_pagespeed_beacon;
		this.url = url;
		this.key = key;
		this.blaWidthHeightResultat = this.blaWidthHeight();
		this.elementsTopLeft = {}
	};
	viewModel.prototype.blaWidthHeight = function () {
		return {
			height: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight, width: window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth
		}
	};
	viewModel.prototype.blaClientBound = function (element) {
		boundingClientRect = element.getBoundingClientRect();
		return {
			top:
				boundingClientRect.top + (void 0 !== window.pageYOffset ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop),
			left:
			boundingClientRect.left + (void 0 !== window.pageXOffset ? window.pageXOffset : (document.documentElement || document.body.parentNode || document.body).scrollLeft)
		}
	};
	viewModel.prototype.blaElementSize = function (element) {
		if (0 >= element.offsetWidth && 0 >= element.offsetHeight)
			return !1;
		element = this.blaClientBound(element);
		var elementTopLeft = element.top.toString() + "," + element.left.toString();
		if (this.elementsTopLeft.hasOwnProperty(elementTopLeft))
			return !1;
		this.elementsTopLeft[elementTopLeft] = !0;
		return element.top <= this.blaWidthHeightResultat.height && element.left <= this.blaWidthHeightResultat.width
	};
	viewModel.prototype.blaSendRequest = function (criticalImagesBeaconData) {
		var request;
		if (window.XMLHttpRequest)
			request = new XMLHttpRequest;
		else if (window.ActiveXObject)
			try {
				request = new ActiveXObject("Msxml2.XMLHTTP")
			} catch (c) {
				try {
					request = new ActiveXObject("Microsoft.XMLHTTP")
				} catch (e) { }
			}
		if (!request)
			return !1;
		request.open("POST", this.mod_pagespeed_beacon + (-1 == this.mod_pagespeed_beacon.indexOf("?") ? "?" : "&") + "url=" + encodeURIComponent(this.url));
		request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		request.send(criticalImagesBeaconData);
		return !0
	};
	viewModel.prototype.blaImage = function () {
		for (var elements = ["img", "input"], pagespeedAttributes = [], c = {}, eIndex = 0; eIndex < elements.length; ++eIndex)
			for (var elementsByTagName = document.getElementsByTagName(elements[eIndex]), nIndex = 0; nIndex < elementsByTagName.length; ++nIndex) {
				var pagespeedAttribute = elementsByTagName[nIndex].getAttribute("pagespeed_url_hash");
				pagespeedAttribute && (
					elementsByTagName[nIndex].getBoundingClientRect && this.blaElementSize(elementsByTagName[nIndex])
				) && !(
					pagespeedAttribute in c
				) && (
					pagespeedAttributes.push(pagespeedAttribute), c[pagespeedAttribute] = !0
				) //Chaque "&&" conditionne l'appel au reste de la ligne : dès qu'une opération est "fausse" (de valeur 0, false, "", null, undefined...), l'exécution s'arrête.
			}
		if (0 != pagespeedAttributes.length) {
			criticalImagesBeaconData = "oh=" + this.key;
			criticalImagesBeaconData += "&ci=" + encodeURIComponent(pagespeedAttributes[0]);
			for (eIndex = 1; eIndex < pagespeedAttributes.length; ++eIndex) {
				uriComponent = "," + encodeURIComponent(pagespeedAttributes[eIndex]);
				if (131072 < criticalImagesBeaconData.length + uriComponent.length) break; //Empêche un dépassement de 131072 caractères pour criticalImagesBeaconData
				criticalImagesBeaconData += uriComponent
			}
			window.pagespeed.criticalImagesBeaconData = criticalImagesBeaconData;
			this.blaSendRequest(criticalImagesBeaconData)
		}
	};
	window.pagespeed.blaRegisterEvent = function (window_local, event, fct) {
		if (window_local.addEventListener)
			window_local.addEventListener(event, fct, !1);
		else if (window_local.attachEvent)
			window_local.attachEvent("on" + event, fct);
		else {
			var fct_local = window_local["on" + event];
			window_local["on" + event] = function () {
				fct.call(this);
				fct_local && fct_local.call(this) //Appel à fct_local.call(this) seulement si fct_local est défini
			}
		}
	};
	window.pagespeed.criticalImagesBeaconInit = function (mod_pagespeed_beacon, url, key) {
		var e = new viewModel(mod_pagespeed_beacon, url, key);
		window.pagespeed.blaRegisterEvent(
			  window,
			  "load",
			  function () {
			  	window.setTimeout(function () {
			  		e.blaImage()
			  	}, 0)
			  }
		)
	};
}
)();
pagespeed.criticalImagesBeaconInit('/mod_pagespeed_beacon', 'http://www.perdu.com/', 'yT-lkVeHbT');
//]]>
Nous sommes sur une page de discussion, si vous comprenez mieux que moi le code dé-minifié, n'hésitez pas à reformuler ma phrase. --91.135.176.212 (discuter) 29 novembre 2017 à 18:42 (CET)Répondre
Ce script est absent en novembre 2023 (desktop Chrome).
S'agissait vraisemblablement d'un script JS pour l'optimisation de performance/vitesse du serveur web (CriticalImagesBeacon)
=> discussion archivée -- Irønie (d) 4 décembre 2023 à 19:40 (CET)Répondre
Revenir à la page « Perdu.com/Archives ».