Skip to content

Instantly share code, notes, and snippets.

View victor-homyakov's full-sized avatar

Victor Homyakov victor-homyakov

View GitHub Profile
@victor-homyakov
victor-homyakov / links - bfcache.md
Last active June 26, 2022 16:46
Ссылки для презентации "BFCache, или Туда и обратно"
@victor-homyakov
victor-homyakov / APIs affecting bfcache.md
Last active August 10, 2024 22:35
API, которые влияют на попадание страницы в bfcache
  • ✔︎ - не мешает попаданию страницы в bfcache
  • ✘ - запрещает попадание страницы в bfcache
  • пустая ячейка - влияние неизвестно
API Firefox Safari Chromium IE
Подписка на beforeunload
Подписка на unload
Незавершённые запросы XHR/fetch ✘ в планах прерывать запрос и вызывать onerror при восстановлении страницы
Незавершённые запросы за ресурсами ✘ кроме favicon
@victor-homyakov
victor-homyakov / detectResizedImages.js
Created April 10, 2020 16:09
Detect resized images on a page. Outline images and write detailed info in console.
/**
* Detect resized images.
*/
(function() {
var Img = function(imgElement) {
this.img = imgElement;
this.src = this.img.src;
this.className = this.img.className;
};
@victor-homyakov
victor-homyakov / detectResizedImagesRu.js
Created April 17, 2020 17:24
Проверка на масштабирование изображений в браузере
/* eslint-disable no-var,no-console */
/**
* Проверка на масштабирование изображений в браузере.
* Срабатывает, если натуральный размер изображения намного больше отображаемого на странице,
* то есть браузер грузит большую картинку и масштабирует её до маленькой.
*/
(function() {
if (!window.Promise || !String.prototype.startsWith || window.MSInputMethodContext) {
// Не запускаем проверку в IE11 и браузерах, не поддерживающих нужные API
return;
@victor-homyakov
victor-homyakov / measure-page-scroll-speed.js
Created April 20, 2020 10:26
Measure page scroll speed
// Measure page scroll speed
(function() {
if (document.body.scrollHeight <= window.innerHeight) {
console.log('Scrolling measurement is only possible if the window can actually be scrolled!');
return;
}
function calcScrollTime(startTime, iterations) {
return Math.round((Date.now() - startTime) / iterations) / 1000;
}
@victor-homyakov
victor-homyakov / links - writing fast code for react and typescript.md
Last active September 25, 2025 09:37
Ссылки для презентации "Код на React и TypeScript, который работает быстро"
@victor-homyakov
victor-homyakov / links - memory limits, leaks and non-standard optimization methods.md
Last active October 31, 2024 18:40
Ссылки для презентации "Память и её утечки в Chrome и Node.js. Нестандартные способы оптимизации памяти в Node.js." GDG Минск 2021
@victor-homyakov
victor-homyakov / links - task scheduler in browser, or do not freeze the page.md
Last active June 26, 2022 16:46
Ссылки для презентации "Планировщик задач: не замораживаем страницу" Podlodka Frontend Crew 2021
@victor-homyakov
victor-homyakov / links - memory limits in node.js and browsers.md
Created August 31, 2022 12:15
Ссылки для презентации "Ограничения на размер типов данных в Node.js и браузерах" Яндекс Субботник 2022