2017-04-22 6 views
1
"statistics": { 
    "cssResponseBytes": "333 kB", 
    "htmlResponseBytes": "269 kB", 
    "imageResponseBytes": "3.35 MB", 
    "javascriptResponseBytes": "2.29 MB", 
    "numberCssResources": 2, 
    "numberHosts": 80, 
    "numberJsResources": 72, 
    "numberResources": 237, 
    "numberStaticResources": 50, 
    "otherResponseBytes": "53.1 kB", 
    "textResponseBytes": "160 kB", 
    "totalRequestBytes": "69.7 kB" 
    }, 

Voici la réponse JSON que vous obtenez pour les statistiques d'une page de l'API Google PageSpeed. Comment puis-je calculer la taille totale du téléchargement en chargeant la page avec ceci, si possible? Mon hypothèse est d'ajouter les 4 premières lignes dans la réponse ensemble (responsebytes)Comment calculer la taille totale d'une page Web avec l'API Google PageSpeed?

Répondre

0

Vous pouvez créer une fonction qui analyse le résultat et calcule le nombre total d'octets, quelque chose comme

var obj = { 
 
    "statistics": { 
 
     "cssResponseBytes": "333 kB", 
 
     "htmlResponseBytes": "269 kB", 
 
     "imageResponseBytes": "3.35 MB", 
 
     "javascriptResponseBytes": "2.29 MB", 
 
     "numberCssResources": 2, 
 
     "numberHosts": 80, 
 
     "numberJsResources": 72, 
 
     "numberResources": 237, 
 
     "numberStaticResources": 50, 
 
     "otherResponseBytes": "53.1 kB", 
 
     "textResponseBytes": "160 kB", 
 
     "totalRequestBytes": "69.7 kB" 
 
     } 
 
} 
 

 
var result = Object.keys(obj.statistics) 
 
     \t \t .filter(k => k.includes('ResponseBytes')) 
 
        .map(v => { 
 
      \t \t var calc = {kB:1,MB:1024,GB:1048576}; // etc 
 
       \t \t var size = +obj.statistics[v].replace(/\s.+$/,''); 
 
         var mult = obj.statistics[v].split(/\s/).pop(); 
 
         return size * (calc[mult]||0); 
 
        }).reduce((a,b) => a+b).toFixed(2) + ' kB'; 
 
        
 
console.log(result)

+0

Merci! donc pour clarifier, les 4 responebytes linese sont en effet la taille totale de la page? – Magnaboy