Как получить как мобильный, так и настольный счет с PageSpeed

Я пытаюсь получить оценку скорости страницы как для настольных компьютеров, так и для мобильных устройств, а затем передать их на входы #pgscore && #pgscorem.

Проблема в том, что в конце скрипта я всегда получаю 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.stackru.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;

Функция находится там внизу. Проблема здесь... Почему я не могу получить переменную device == 'desktop' сначала, а затем во второй для цикла 'mobile'? Я всегда получаю "мобильный".

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


 };



};

1 ответ

Так как мне нужен только счет, я использую 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'];
Другие вопросы по тегам