Почему браузеры с опцией «оффлайн» по-прежнему ведут себя как приложения «онлайн»? - PullRequest
0 голосов
/ 27 января 2019

tl; dr: какова логика браузеров (Chrome, FF, Safari), которые ведут себя как приложение, работающее в режиме онлайн после нажатия кнопки «офлайн», а не просто ... перейти в автономный режим?

CPP, FOP, STP

У меня есть небольшое приложение socket.io, которое извлекается из API Twitter для создания галереи изображений.

Я хотел стилизовать div, которые создают рамку вокруг фотографий, но во время работы приложения обнаружил, что при выборе элементов в инструментах разработчика при каждом добавлении нового изображения Chrome выдает " пурпурный пульсирующий "(далее именуемый CPP), который выкинул меня из div I хотел для стиля и (грубо) поставил меня в его родитель div (собственно Галерея, если хотите).

Вуаля:

Chrome's Purple Pulse

Я начал с отключения WiFi, что решило проблему с двумя недостатками:

  • вспомнил офлайн-опцию в сетевой панели
  • требовалось соединение для чтения socket.io документов: ~)

Затем я попробовал автономный вариант и обнаружил, что, как и в производственной версии, CPP возобновляется, изображение запрашивает ведение журнала net::ERR_INTERNET_DISCONNECTED.

Я понял, что, возможно, мог бы установить опцию reconnection: false в бите socket.io, но, увы, эта новелла вопроса (которая содержит множество) все еще манит:

Актуальный вопрос (ы)

Какая логика этого поведения принадлежит Google (и Firefox (Orange Pulse), Safari (Transparent Pulse) и др.)?

Почему бы не разорвать соединение соответствующей вкладки?

Еще лучше, почему бы не позволить бедному разработчику оба крепко держаться за свой элемент и визуально признать, что в него добавляются новые элементы?

Изображения по-прежнему извлекаются (!), Что делает параметр Offline еще более вводящим в заблуждение.

Документы от Google PWA и тех, у кого есть работники сферы услуг ... делает

Поставьте флажок в автономном режиме, чтобы имитировать работу сети в автономном режиме.

относится только к ним?

Код, который Кинда мог:

Вот ~ 20 соответствующих линий в игре ( и вот весь концерт ):

// app.js

var T = new Twit(config)

var stream = T.stream('statuses/filter', { track: '#MyHashtag', })

stream.on('tweet', function(tweet) { io.sockets.emit('tweet', tweet) })

function handler(request, response) {
    var stream = fs.createReadStream(__dirname + '/index.html')
    stream.pipe(response)
}

... и соответствующий скрипт index.html:

// index.html

var socket = io.connect('/');

socket.on('tweet', function(tweet) {
    if (someConditions = foo) {
        tweet_container.innerHTML = '<img src="' 
            + tweet.user.profile_image_url +
        '" />'
    }
}, 1000)

Nota Bene : я понимаю, что этот вопрос содержит вопросы, относящиеся к опросам, потокам, сетям и темам, имена которых мне даже не знакомы, но мое основное любопытство - в чем логика ведет себя как приложение, которое подключается к Интернету после нажатия кнопки «офлайн», а не просто ... отключается »(и ведет себя так же, как при отключении от WiFi).

P.S.S вот цитата по колено в socket.io docs

Если определенный клиент не готов к приему сообщений (из-за медленной работы сети или других проблем или из-за того, что он подключен через длительный опрос и находится в середине цикла запрос-ответ), если он не получит ВСЕ твиты, связанные с bieber, ваше приложение не пострадает .

В этом случае вы можете отправлять эти сообщения как нестабильные сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...