При перетаскивании не выбранного изображения в текстовом редакторе оно загружается многократно

Я не уверен, является ли это проблемой дизайна, но пока я помещу это в эту категорию.

Загрузка изображения в редакторе с форматированным текстом:

  • Если вы нажмёте на него (чтобы выбрать) и затем перетащите, изображение переместится. :smiley:
  • Если вы перетащите его, не нажимая предварительно, оно будет воспринято как новый ресурс изображения, и операция загрузки будет выполнена снова… :sweat_smile:

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

2 лайка

Я не могу воспроизвести это :woman_shrugging: Возможно, у кого-то другого получится.

Какой браузер вы используете?

Браузер Edge, версия 145.0.3800.82. Я только что обновился до версии 148.0.3967.54, но это не помогло.

Да, я надеюсь, что кому-то другому удастся успешно воспроизвести эту проблему. :face_with_head_bandage:
Я могу лишь подтвердить, что проблема существует, но не знаю её точной причины.
Изначально один из пользователей моего сайта сообщил мне, что столкнулся с этой проблемой при перетаскивании загруженного изображения. В то время мне тоже было сложно воспроизвести её, если только я не копировал напрямую Markdown, который пользователь использовал для загрузки этого изображения. Похоже, проблема связана как с самим сайтом, так и с вложением (все проблемные изображения — файлы в формате PNG). Мне также не удавалось воспроизвести её на Meta (даже при загрузке того же вложения на Meta), поэтому эту проблему отложили.
В день создания этой темы у меня внезапно возникла идея: я попробовал использовать PNG-изображение логотипа Discourse по умолчанию из видео и в итоге смог воспроизвести проблему на Meta. Однако сегодня, когда я попытался повторить эксперимент, оказалось, что на это изображение больше нельзя сослаться — тестовый материал, который ранее успешно воспроизводил проблему на Meta, снова исчез. :face_with_spiral_eyes:

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

Нет, извините, как бы я ни пытался перетащить, даже с примером логотипа, мне не удаётся воспроизвести проблему.

У меня нет Edge для тестирования, поэтому, возможно, это связано с браузером. Не могли бы вы проверить в браузере на базе Chromium?

Привет! Пытаюсь (в Edge, версия 148.0.3967.54 (Официальная сборка) (64-разрядная)) помочь с тестированием этой ошибки…


Это текст после изображения

2 лайка

Разве Edge не является браузером на движке Chromium?

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

2 лайка

Я не понимаю — как можно перетащить его, не нажав на него предварительно?

Я вижу, что в вашем сообщении два раза встречается ![image](/images/discourse-logo-sketch-small.png). Это результат успешного воспроизведения? То есть: вы можете воспроизвести проблему с маленьким логотипом, но не можете с фотографией вашей кошки?

Сначала поместите курсор на другой фрагмент текста, затем нажмите и удерживайте левую кнопку мыши на изображении и перетащите его. Если вы сначала щёлкните (и отпустите), а затем начнёте перетаскивание, будет выделено само изображение.

Хорошо, в Edge и с использованием RTE, начинаем заново…

загружаю новое изображение ниже…

… и теперь перетаскиваю изображение вниз, под следующий абзац..

Вот следующий абзац…

Это следующий абзац. Теперь я перетащу изображение вниз, под него…

В приведённом выше тесте (выполненном в последней версии Edge, с использованием RTE в редакторе Discourse) перетаскивание ранее загруженного изображения, казалось, работало корректно — я не увидел никаких указаний на необходимость повторной загрузки?

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


Загрузка — нажмите левую кнопку мыши и перетащите напрямую


Перемещение — нажмите левую кнопку мыши, а затем перетащите

Кстати, я только что протестировал с использованием вашей кошки (![image](https://d11a6trkgmumsb.cloudfront.net/original/4X/c/8/4/c84af711be6e56b1fa1500710edd6869364935da.png)) и вашего другого изображения (![image](https://d11a6trkgmumsb.cloudfront.net/original/4X/8/9/8/89898942816045cca658884fa050bacd20f3cdfb.jpeg)), и обнаружил, что ни одно из них не вызывает эту проблему.

Я предлагаю вам использовать ![image](/images/discourse-logo-sketch-small.png) для тестирования; по крайней мере, мне известно, что это тестовый материал, который надежно воспроизводит проблему. Если вы не сможете воспроизвести проблему с его помощью, возможно, вам просто невероятно повезло. :wink:

Возможно, эта проблема ограничена только этим конкретным изображением?


Ниже приведены два примера, вставленных в редактор в режиме RTE…

![image](/images/discourse-logo-sketch-small.png)

![image](/images/discourse-logo-sketch-small.png)


Ниже ещё два примера, вставленных в редактор в режиме Markdown

!\[image\](/images/discourse-logo-sketch-small.png)

В этом последнем сценарии вы имеете в виду, что загружаются два разных экземпляра/копии изображения или файла, и затем на сервере хранятся два файла?

Или же изображение, вставленное из буфера обмена, фактически не загружается на сервер до тех пор, пока (после загрузки) вы не нажмёте на него (и только тогда один экземпляр изображения или файла будет загружен и сохранён на сервере)?

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

Нет, на самом деле Discourse умнее, чем мы думали. Например:
Пользователь на моём сайте загрузил изображение, и в редакторе Markdown оно выглядит так:

...
![pic|370x494, 40%](upload://jqrVvqCoYL0wuOvUZWTDwhYw8IU.jpeg)
...

Я получил его полную ссылку через инструменты разработчика в браузере: https://example.com/uploads/default/original/1X/8826bc6c1be0e501979df4a004b9b2ae51c50320.jpeg. Поэтому я использовал изображение в редакторе, указав полную ссылку:

![image](https://example.com/uploads/default/original/1X/8826bc6c1be0e501979df4a004b9b2ae51c50320.jpeg)

После перетаскивания без клика (что вызывает загрузку) в редакторе с богатым форматированием содержимое в редакторе Markdown становится следующим:

![image](https://example.com/uploads/default/original/1X/8826bc6c1be0e501979df4a004b9b2ae51c50320.jpeg)

![image|370x494](upload://jqrVvqCoYL0wuOvUZWTDwhYw8IU.jpeg)

Видно, что хотя Discourse показывает, что перетаскивание вызывает загрузку, изображение фактически отображается как ![image|370x494](upload://jqrVvqCoYL0wuOvUZWTDwhYw8IU.jpeg), что соответствует тому же вложению, которое изначально было загружено пользователем по ссылке https://example.com/uploads/default/original/1X/8826bc6c1be0e501979df4a004b9b2ae51c50320.jpeg.

  • Перетаскивание изображения, указанного в формате ![image|370x494](upload://jqrVvqCoYL0wuOvUZWTDwhYw8IU.jpeg), также приводит к такому же поведению.

С этой точки зрения повторная загрузка не занимает дополнительное место на диске — только первый загруженный файл действительно занимает место на сервере. Таким образом, это просто проблема пользовательского опыта: пользователи путаются в вопросе «почему перетаскивание изображения (когда я нажимаю и тащу, не отпуская кнопку мыши) не работает как ожидалось, а вместо этого показывает процесс загрузки и дублирует изображение?»

1 лайк

Тогда я пока сделаю вывод, что (хорошая новость!) изображение, похоже, не загружается многократно, а загружается только один раз (?).

1 лайк