tl; dr: какова логика браузеров (Chrome, FF, Safari), которые ведут себя как приложение, работающее в режиме онлайн после нажатия кнопки «офлайн», а не просто ... перейти в автономный режим?
CPP, FOP, STP
У меня есть небольшое приложение socket.io, которое извлекается из API Twitter для создания галереи изображений.
Я хотел стилизовать div
, которые создают рамку вокруг фотографий, но во время работы приложения обнаружил, что при выборе элементов в инструментах разработчика при каждом добавлении нового изображения Chrome выдает " пурпурный
пульсирующий "(далее именуемый CPP), который выкинул меня из div
I хотел для стиля и (грубо) поставил меня в его родитель div
(собственно Галерея, если хотите).
Вуаля:
Я начал с отключения 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, ваше приложение не пострадает .
В этом случае вы можете отправлять эти сообщения как нестабильные сообщения.