вставляется в строку в Vuetify crash Chrome tab - PullRequest
0 голосов
/ 23 февраля 2020

Контекст

У меня есть приложение Vue, в котором я хочу отображать длинные строки - например, содержимое больших jsons.

При тестировании с одним таких файлов моя вкладка Chrome начала падать.

После дальнейшего изучения я обнаружил:

  • проблема возникает только в Chrome - Firefox отлично работает
  • проблема возникает только тогда, когда текст внедрен в сетку Vuetify
  • проблема возникает только тогда, когда указанная короткая строка c является частью json

Код

Пожалуйста, посмотрите на https://codesandbox.io/s/damp-frog-70sxh.

В этом примере приложения, если вы выбираете файл из жесткий диск, его необработанный текст будет сохранен в переменной данных приложения jsonText.

После того, как вы нажмете «Показать строку», jsonText будет использоваться в качестве опоры для одного из компонентов вывода: VuetifyTemplate или BasicTemplate. Первый использует сетку Vuetify, другой просто HTML. Можно выбрать тот, который будет использоваться, комментируя / раскомментируя определенную часть раздела шаблона приложения. vue.

Затем он просто передается компоненту OutputField, содержащему простой div для отображения текста.

В папке / examples есть два json файла. Один содержит "text": "IT­ System­ Elektroniker " в своем первом и последнем объектах, другой нет.

В первом файле строка проблематики c используется в первом объекте только для облегчения проверки его в инструментах разработки. Только тот, что в конце json имеет реальное влияние на производительность.

Выходы

Под Chrome, когда используется VuetifyTemplate и отправлено json-with-strange-string.json, после нажатия на «Показать строку» текст занимает несколько секунд оказывать. После проверки при проверке строка «IT System Elektroniker» содержит ­ символов, которых нет в файле. json.
enter image description here

Под Chrome когда используется BasicTemplate или json-without-strange-string.json, текст отображается мгновенно.

Под Firefox, даже если используются VuetifyTemplate и json-with-strange-string.json, текст отображается без задержки , Также при проверке текст не содержит символов ­.
enter image description here

Вопросы

В приведенном выше примере проблема проявляется только с небольшой задержкой, но при попытке опробовать оригинал, более 3 Мб, json полностью разбился вкладка Chrome.

Моя гипотеза состоит в том, что символы ­ каким-то образом скрыты в этой части строки, а затем делают компоненты Vuetify cra sh на Chrome из-за некоторых ошибок в реализации любого из них.

Я был бы очень благодарен за ответы на следующие вопросы:

  1. Верна ли эта гипотеза
  2. Что я могу сделать, чтобы очистить любую входную строку (при условии, что у меня нет прямого контроля над файлы, которые будут использоваться), чтобы не вызывать проблем с Chrome?
...