Всем привет. Распишу проблемы с которым я сталкиваюсь и очень надеюсь на скорейшее решение всех проблем т.к я уже почти 3 месяца не могу закончить перевод сайта.
Основная суть.
Айфон на всех браузерах очень долго выполняет самые простые БП по переводу моего сайта (да и не только их). Также большие проблемы с загрузкой листов.
В то время как с компа или андроид устройств все работает корректно.
Берём при примера главную страницу, страницу с листом (где всего 3 записи очень простые) и самую лайтовую страницу.
На айфоне как будто есть какой-то кеш, который мешает сильно всей работе. Если я публикую проект, то при первой загрузке все норм. Далее все начинает тупить и долго грузиться. Очень часто даже едет верстка, все контейнеры становятся квадратами. (примерно 4 раза из 10 перезагрузок страницы) что тоже СИЛЬНЫЙ баг который надо исправить.
Пример: (со страницы baliway.online/404
Пример: (со страницы baliway.online)
Вернемся к проблемам с переводом.
Как реализована у меня логика. Я на текстах через onCreate запускаю БП где на входе уже лежат у меня текста.
Здесь как мы видим, заранее записан текст и вызывается бизнес процесс, ниже подробнее его опишу.
p.s Хоть и на скриншоте h текст это не играет не какой роли, с обычными такая же проблема.
Бизнес процесс на перевод:
Вся суть перевода строится по принципу:
- Берём глобалку постоянную и проверяем что там написано.
Например если в глобалке Language установлено “RU” значит текст в БП что ниже приложу установится как Русский
Поехали
На входе у нас есть текста которые мы добавили к каждому тексту, также прокинули в БП ID элемента
БП довольно простой, он проверяет какое значение в глобалке Language, устанвливает нужный текст в text update data либо вовсе игнорирует если язык EN (он по умолчанию уже вбит у меня во всех элемента). Также мы добавим к нему delay чтобы текст отрабатывал чуть позже т.к нам надо время чтобы отработали БП по смене языка.
Внимание: On app launch ставит всегда при первом входе EN если глобалка пустая, далее если вы переключите его через меню или через ?lang=ru то он будет проверять это + повесил сигнал что On app launch начался и закончил обработку БП
И вот тут как раз начинается проблема.
Начнем с простого к сложному.
БП для смены языка мы добавляем ?lang=ru или ?lang=zh
У него есть show toast который вы увидите сразу, скажет нам изначальный язык и прокричит Начали1 чтобы понять что БП сразу запустился.
В конце он выдаст нам язык, который установился и скажет что закончил его выполнять.
Также повесим сигналы на text translage о старте БП и финише.
Заходим впервые по ссылке что выше скинул и видим:
Скорее всего у вас нормально все загрузится на EN языке при первом заходе, давайте его поменяем через ?lang=ru
Тут начинается пляска.
Либо поедет верстка, либо язык не прогрузится, либо БП до конца не отработают (Должны быть все оповещения о Text Start и Text Finish)
Прикладываю различные варианты:
Мы видим что язык изначально у нас EN был, переключение работает нормально, текст обрабатывается следом после всех важных нам БП
Тестим на ПК и Андроид, все окей
КЕЙС №2:
Страница baliway.online/office/catalog
Зайдите сначала через ПК на нее, увидите что все сразу переводится быстро, принцип тот же. Например если мы закончили тесты на странице “404” с ?lang=zh то тут если зайти без lang= то автоматом мы получим ZH ведь он уже лежит в глобалке.
На айфоне у вас будет сразу англ язык и вы увидите как БП с текстом начинают очень долго выполняться. Если посидеть на странице около 30 сек до 60 секунд у вас будет вылезать постоянно новые show toast + текст будет поэтапно один за одним меняться.
Также обратим внимание на шапку шаблона
- учитываем что я отключил все листы в шаблоне чтобы они не грузили нас (с ними ситуация в 1 раза хуже)
Кейс №3
Главная страница baliway.online
Все делаем тоже самое, текст сам обновится спустя 30 секунд примерно либо крашнется верстка
Кейс №4 (работа с БД)
Страница: baliway.online/events
Там у текст описание мероприятия изначально по умолчания Loading… далее он должен тянуть описание для этого языка согласно ячейке. Тот же принцип, проверяем EN=EN - true - text update
Требуется примерно около 40 сек чтобы вся страница нормально изменилась
Кейс №5
Откройте меню и смотрите в него 30 секунд, увидите кк он долго меняет текст. Принцип тот же самый у БП только там update data LINK а не TEXT
Дополнительные проблемы:
Нагрев телефона, я не знаю ни одну игру чтобы она так нагревала телефон пока я все это тестировал и писал статью эту. Давайте брать за внимание что тесты я провожу на айфон 15 и айфон 12, мы все прекрасно понимаем что это очень технологичные телефоны, люди на них не такое запускают и что попросить Тим Кука исправить что-то мы не можем т.к с долей вероятности 99.999999% баг точно не в железе айфона
Примечание:
Старайтесь как можно чаще обновлять страницу, чтобы увидеть больше вариаций различных поведений всех Кейсов, что я описал выше. Не делайте вывод, пожалуйста, что все работает если 1 раз у вас получилось, каждый кейс просмотрите 10 раз и я уверен на 100% у вас получится все за несколько секунд чтобы работало (как на ПК) только 1-2 раза из 10.
За эталон мы берем версию ПК гугл хром + мак
Вывод:
Я не использую супер сложные БП которые требуют огромных ресурсов и нужно иметь фабрику супер модного железа от Intel или Nvidea чтобы обработать что-то. У меня довольно простой сайт и очень простой логикой. Но почему то на айфоне такие жуткие лаги.
Тесты проводил уже довольно много дней, с впн, прокси, без, с разных браузеров, чистив кеш и т.д
Проблема именно в скорости, где она, я не знаю и проверить не могу. Все приложения, сайты, не лагают так и не нагружают железо