Discourse не загружается в устаревших браузерах

А как насчёт этого, @david?

if (!String.prototype.replaceAll) {
	String.prototype.replaceAll = function(str, newStr){

		// Если это шаблон регулярного выражения
		if (Object.prototype.toString.call(str).toLowerCase() === '[object regexp]') {
			return this.replace(str, newStr);
		}

		// Если это строка
		return this.split(str).join(newStr);

	};
}

Я изменил ветку для строк в решении, которое ты поделился, чтобы исправить конвертацию строк в регулярные выражения без экранирования.

4 лайка

Я не думаю, что это сработает, когда в качестве второго аргумента передана функция:

"my string with my example".replaceAll("my", (match) => `test${match}`)

(документация по функции доступна здесь)

5 лайков

Я использую iPad Air с версией iOS 12.5.5. Последняя версия браузера Chrome, доступная для этого планшета, не загружает форум Sketchup. Я получаю то же баннерное сообщение, о котором упоминается в нескольких предыдущих постах. Есть ли способ решить эту проблему без обновления до нового iPad?

Мне подходит :+1:

Думаю, это должно помочь:

6 лайков

Хм, хотя это решает проблему использования Discourse на MacOS Mojave, похоже, что iOS 12.5.5 также не проходит нашу проверку globalThis.

Хотим ли мы добавить полифилл и для этого?

4 лайка

Да! Сайт (и Discourse, и Community.Jenkins.io) снова работает нормально в устаревших браузерах; я вижу содержимое и могу публиковать сообщения (и в Jenkins, и здесь).

Огромная благодарность за все усилия, затраченные на решение этой проблемы; казалось, что всё было гораздо сложнее, чем я ожидал.

Теперь, если бы только удалось убедить StackOverflow откатить их сломанные изменения (во второй раз) и восстановить функциональность для устаревших браузеров. Они уже делали это однажды, но их новая позиция, похоже, сводится к тому, что во всём виноват пользователь.

4 лайка

Да, этот форум снова работает на iOS 12.2, хотя https://support.last.fm/ всё ещё нет (возможно, им нужно что-то обновить?)
Опять же, спасибо за ваше время, потраченное на исправление.

Имейте в виду, что наш главный приоритет — не ломать работу в старых браузерах. Пустая страница просто недопустима, даже в древних браузерах. Режим только для чтения приемлем.

Сложность возникла из-за того, что у нас есть браузеры, находящиеся в пограничном состоянии: они не совсем поддерживаются, но и не совсем не поддерживаются. К сожалению, они получали пустую белую страницу.

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

7 лайков

Только для уточнения: некоторые наши пользователи на https://support.last.fm/ всё ещё сообщают о проблемах: Mobile view of this forum is broken - #6 by tutibins - Get Help - Last.fm Support Community

Было ли это исправление уже развернуто на размещённых сайтах?

Если да, то это может указывать на то, что тему/компонент, которые мы используем, или наш пользовательский CSS вызывают проблему, но я не хочу лезть в это, если исправление ещё не развернуто. :slight_smile:

Спасибо ещё раз за то, что разбираетесь в этом.

1 лайк

Привет, Джон — это изменение ещё не развернуто на всех наших хостинговых сайтах. Но я прямо сейчас запущу этот процесс — оно должно появиться на вашем сайте примерно в течение часа.

3 лайка

Теперь всё работает!
Спасибо!

1 лайк

Отлично, спасибо, Дэвид. :+1:

3 лайка

Когда изменения будут развернуты на forums.sketchup.com?

Развёртывание прямо сейчас! :slight_smile:

5 лайков

Я открываю обсуждение снова, так как у некоторых людей всё ещё есть проблемы.

План:

  1. Удалить browser_update_user_agents — мы больше не хотим использовать его для определения возможностей браузера.
  2. Добавить optimise_traffic_on_modern_mobile_browsers (по умолчанию true) — если у пользователей современный мобильный браузер (современный Chrome / Safari), мы оптимизируем передачу данных, избегая отправки HTML-полезной нагрузки.
  3. Провести базовую работу над дизайном для просмотра crawler / HTML — улучшить стилизацию, отступы, поля и т. д. силами @Designers.

@Falco, как тебе такой вариант?

Я постараюсь заняться этим на следующей неделе; если не получится, передам задачу внутренним специалистам на следующую неделю.

6 лайков

Звучит :+1:

Будьте осторожны при тестировании на Meta: эксперимент с дизайном без таблиц здесь значительно ухудшил вид краулера.

Пользователи ранних версий iOS 12 до сих пор не могут запустить приложение, так как у них отсутствует window.globalThis. Вы легко можете воспроизвести это на Browserstack. Нам нужно развернуть HTML-контент для сценария без поддержки JavaScript для этих пользователей. Ваш план, шаг 1, решит эту проблему.

5 лайков

Я сделал небольшой PR, чтобы сделать эти представления более читаемыми:

10 лайков

Выглядит отлично, я также оставил комментарий в PR. Google использует индексацию в первую очередь для мобильных устройств, поэтому нам нужно тщательно протестировать мобильное разрешение, так как именно мобильные пользователи являются основной аудиторией этого представления.

5 лайков