2017-10-20 8 views
0

J'essaie d'obtenir le score de vitesse de la page pour les deux: ordinateur de bureau et mobile, puis passez-les à #pgscore & & #pgscorem entrées.Comment obtenir des scores mobiles et de bureau avec PageSpeed ​​

Le problème est qu'à la fin du script, je reçois toujours var device == 'mobile'. On dirait qu'il saute pour la boucle. Une idée comment pourrais-je le réparer?

for (var r = 0; r < 2; r++) { 
var API_KEY = 'mykey'; 
var device = ''; 

switch (r) { 
    case 0: device='desktop'; break; 
    case 1: device='mobile'; break; 
}; 
alert(device); 
var URL_TO_GET_RESULTS_FOR = 'http://www.stackoverflow.com' + '&strategy=' + device; 

var API_URL = 'https://www.googleapis.com/pagespeedonline/v1/runPagespeed?'; 
var CHART_API_URL = 'http://chart.apis.google.com/chart?'; 


var callbacks = {} 


function runPagespeed() { 
    var s = document.createElement('script'); 
    s.type = 'text/javascript'; 
    s.async = true; 
    var query = [ 
    'url=' + URL_TO_GET_RESULTS_FOR, 
    'callback=runPagespeedCallbacks', 
    'key=' + API_KEY, 
    ].join('&'); 
    s.src = API_URL + query; 
    document.head.insertBefore(s, null); 
} 


function runPagespeedCallbacks(result) { 
    if (result.error) { 
    var errors = result.error.errors; 
    for (var i = 0, len = errors.length; i < len; ++i) { 
     if (errors[i].reason == 'badRequest' && API_KEY == 'yourAPIKey') { 
     alert('Please specify your Google API key in the API_KEY variable.'); 
     } else { 

     alert(errors[i].message); 
     } 
    } 
    return; 
    } 

    for (var fn in callbacks) { 
    var f = callbacks[fn]; 
    if (typeof f == 'function') { 
     callbacks[fn](result); 
    } 
    } 
} 

setTimeout(runPagespeed, 0); 


callbacks.displayPageSpeedScore = function(result) { 
    var score = result.score; 

La fonction compte des valeurs là-bas. Problème est ici ... Pourquoi je ne peux pas obtenir périphérique variable == «bureau» d'abord, puis en second lieu pour la boucle «mobile»? Je suis toujours 'mobile'.

switch (device) { 
     case 'desktop': $('#pgscore').val(score); break; 
     case 'mobile': $('#pgscorem').val(score); break; 
    }; 


}; 



}; 

Répondre

0

Depuis que je dois marquer le seul, j'utilise php

$jsonurl="https://www.googleapis.com/pagespeedonline/v1/runPagespeed?url=$url&locale=pl_pl&$key"; 
    $json = file_get_contents($jsonurl); 
    $json_output = json_decode($json, true); 
    /* print_r(array_values($json_output));*/ 
    echo $json_output['score'];