https://yourstop.info - это PWA.Когда я запускаю на нем маяк, показатель PWA достигает 73, а производительность - 60, см. Изображение ниже.
Время взаимодействия составляет 19,1 секунды, что является причиной низкой оценки.Что происходит при запуске, так это то, что когда местоположение пользователя определено, список соответствующих автобусных остановок загружается в фоновом режиме.Код для этого
var firstLocationUpdate = false;
//var firstLocationUpdate = true;
if (navigator.geolocation) {
navigator.geolocation.watchPosition(updatePosition, showError, geoOptions);
}
else {
window.ys.userLocationError = "Geolocation is not supported by this browser";
}
function updatePosition(position) {
if (position != null) {
window.ys.userLat = position.coords.latitude;
window.ys.userLon = position.coords.longitude;
try {
// When google maps was not loaded this was throwing an exception
window.ys.userLocation = new google.maps.LatLng(window.ys.userLat, window.ys.userLon);
}
catch (e) {
console.log("Google maps not loaded when initializing geo.js, userLocation LatLng not set");
}
window.ys.userLocationError = "";
if (window.ys.userLocation != null && window.ys.userLocationTripMarker != null) {
window.ys.userLocationTripMarker.setPosition(window.ys.userLocation);
}
if (window.ys.userLocation != null && window.ys.userLocationSearchMarker != null) {
window.ys.userLocationSearchMarker.setPosition(window.ys.userLocation);
}
if (firstLocationUpdate == false) {
var event = document.createEvent("HTMLEvents");
event.initEvent('firstlocationupdate', true, true);
document.dispatchEvent(event);
firstLocationUpdate = true;
}
}
}
Это, однако, никак не влияет на готовность PWA, страница уже полностью отрисована, и пользователь может выполнять другие задачи, пока выполняется фоновая функция.Если в приведенном выше фрагменте кода firstLocationUpdate инициализируется как true , и загрузка в фоновом режиме запрещена, тогда выигрыш маяка намного выше, как показано здесь
Оба случая показывают, насколько я могу судить, абсолютно одинаково.Но преимущество выполнения фоновой остановки загрузки заключается в том, что операция Locate the Nearest Stops происходит намного быстрее.
Проблема с более низким показателем для PWA заключается в том, что Chrome больше не отображает веб-страницы автоматически.приложение установить баннер.Поэтому я нахожусь в ситуации, когда мне нужно сделать выбор, и в настоящее время я предпочитаю выполнять фоновую загрузку.
Таким образом, вопрос заключается в том, существует ли обходной путь, который позволит мне ОБА с высоким PWAоценка И сделать фоновую загрузку?
Или есть какой-то способ повлиять на то, как Маяк оценивает PWA, на мой взгляд, в любом случае, фоновая загрузка приводит к тому, что маяк продлевает время для интерактивного взаимодействия, не является правильным поведением?