2017-10-20 104 views
0

我試圖獲得桌面和移動設備的頁面速度分數,然後將它們傳遞給#pgscore & & #pgscorem輸入。如何使用PageSpeed獲得移動和桌面評分

問題是,在腳本的末尾,我始終得到var device =='mobile'。它看起來像跳過循環。任何想法我怎麼能解決它?

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; 

功能countinues在那裏。問題在這裏...爲什麼我不能獲得可變設備=='桌面',然後在第二個循環'移動'?我總是'移動'。

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


}; 



}; 

回答

0

因爲我只需要得分,我在使用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'];