169 похожих чатов

Друзья, кто-нибудь сталкивался с проблемой того, что Safari не перерендеривает

компонент с достаточно частыми ререндерами? (раз в 33 мс)
Компонент представляет собой свгшку.
В других браузерах всё хорошо, а в сафари всё плохо(( У меня особые счеты с вебкитом, я просто не понимаю как его можно всерьёз воспринимать…
Вынесение на отдельный gpu слой не помогает или не работает (не вижу отдельным слоем во вкладке «слои»)

18 ответов

14 просмотров

Вряд ли это от браузера зависит, смотри в профилировщике причину

Vlad-☄️ Автор вопроса
Тимофей 🛴
Вряд ли это от браузера зависит, смотри в профилир...

chrome и firefox как-то смогли понять что нужно ререндерить line если у него меняется аттрибут, а safari нет, это явный косяк именно движка. Но за совет профайлера спасяб! Посмотрел по нему - он говорит, что и рефлоу и рекомпоуз происходит. Однако обнаружил, что при ререндере подсвечивается не область графика, а область слева от него… Какая-то дичь, связанная с неправильно рассчитанными оффсетами для перерендера скорее всего. Буду смотреть.

Vlad-☄️ Автор вопроса
Vlad ☄️
chrome и firefox как-то смогли понять что нужно ре...

А я в очередной раз напоминаю о максимальном избегании использования относительных значений для, как минимум, SVG элементов и библиотек для них. Каждый движок, похоже, считает по-разному.

Vlad ☄️
А я в очередной раз напоминаю о максимальном избег...

А какие относительные величины для свг ты юзал?🤔

Vlad-☄️ Автор вопроса
Vlad ☄️
процентики для x1,x2,y1,y2 in my case

🤔у каждой свгхи же своя система координат

Vlad-☄️ Автор вопроса
Dmitriy Shuleshov
🤔у каждой свгхи же своя система координат

но тогда почему в тройке браузеров один из них считает позицию svg path иначе?

Volodymyr Klimov
Потому, что браузеры - уроды

Тот момент когда разраб долго во фронте🌚

Vlad-☄️ Автор вопроса
Volodymyr Klimov
Потому, что браузеры - уроды

Я бы даже один выделил и все мы знаем о ком речь

Vlad-☄️ Автор вопроса
Dmitriy Shuleshov
А можешь снипет маленький кинуть?

Воспроизводимый фиддл - не тк долго, но root cause кусок кода выглядел как d3.select(middleLineRef.current) .attr('x1', xScale(time)) .attr('y1', '0') .attr('y2', '100%') .attr('x2', xScale(time));

Vlad-☄️ Автор вопроса
Dmitriy Shuleshov
Какие атрибуты у корневой ноды свг?

Никаких кроме width и height заданных в абсолютных числах, добавление viewBox или неймспейса не решали проблемес

Vlad ☄️
Никаких кроме width и height заданных в абсолютных...

Я подозреваю что сафаря поддерживают тока спеку 1.1

Dmitriy Shuleshov
screenshot

Короче безопаснее всего оперировать юнитами вьюбокса свг, те без указания типа юнитов

Vlad-☄️ Автор вопроса
Dmitriy Shuleshov
screenshot

shhhieeeeeet.jpg Спасибо за инвестигейт такой) А я шарился по вебкит багтрекеру, вчитывался в треды открытые на тему свгшек. Кажется, я понимаю тех, кто в шоке от того, какая беда со спецификациями и их поддержкой в вебе.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта