Щелчок правой кнопкой мыши в веб-приложениях: хорошая или плохая идея?

Позвольте мне предположить:

  • У нас есть 8 (предположительно двоичных) файлов, скажем: dir1/out.txt, dir2/out.txt, .. dir8/out.txt.
  • Мы хотим сравнить среди этих файлов и определить, какие файлы идентичны, а какие нет.

Тогда как насчет шагов:

  1. Для генерации хеш-значений файлов, например, с. sha256sum. [Тысяча сто двадцать одна]
  2. Сравнить значения хеш-функции и разделить на группы на основе значений хеш-функции.

Я создал 8 тестовых файлов, из которых dir1 / out.txt, dir2 / out.txt и dir4 / out.txt являются идентичными, dir3 / out.txt и dir7 / out.txt идентичны, и другие отличаются.

Тогда значения хеш-функции будут выглядеть следующим образом:

sha256sum dir*/out.txt

298497ad818c3d927498537ed5ab4f9ae663747b6d00ec9a5d0bd9e30a6b714b  dir1/out.txt
298497ad818c3d927498537ed5ab4f9ae663747b6d00ec9a5d0bd9e30a6b714b  dir2/out.txt  
e962879ef251f2117460cf0d5ce714e36a9ab79f2548c48e2121b4e573cf179b  dir3/out.txt  
298497ad818c3d927498537ed5ab4f9ae663747b6d00ec9a5d0bd9e30a6b714b  dir4/out.txt
f45151f5253c62de69c95935f083b5649876fdb661412d4f32065a7b018bf68b  dir5/out.txt  
bdc26931acfb734b142a8d675f205becf27560dc461f501822de13274fe6fc8a  dir6/out.txt  
e962879ef251f2117460cf0d5ce714e36a9ab79f2548c48e2121b4e573cf179b  dir7/out.txt  
11a77c3d96c06974b53d7f40a577e6813739eb5c811b2a86f59038ea90add772  dir8/out.txt  

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

Вот сценарий:

sha256sum dir*/out.txt | awk '{if (!gid[$1]) gid[$1] = ++n; print $2 " " gid[$1]}'

Вывод:

dir1/out.txt 1
dir2/out.txt 1
dir3/out.txt 2
dir4/out.txt 1
dir5/out.txt 3
dir6/out.txt 4
dir7/out.txt 2
dir8/out.txt 5

, где во втором поле отображается идентификатор группы , чтобы указать, какие файлы идентичны. [ 1131]

Обратите внимание, что идентификатор группы не представляет содержимое каждого файла как: if 2 of the out.txt files are all '1' = F , and if all '0' = 0, потому что я понятия не имею, как выглядят файлы. Если OP может предоставить файлы примеров, я мог бы помочь.
Кстати, я все еще сомневаюсь, что файлы являются двоичными в обычном смысле, потому что OP упоминает, что «это просто файл, который имеет 0 или 1 в своем значении, когда я его открываю». Мне кажется, файлы состоят из «0» и «1». Мой скрипт выше должен работать как для двоичных, так и для текстовых файлов.

[Обновление]

Согласно информации ОП, есть решение для конкретного случая:

#!/bin/bash

for f in dir*/out.txt; do
    if [[ $(uniq "$f" | wc -l) = 1 ]]; then
        echo -n "$(head -1 "$f" | tr 1 F)" 
    else
        echo -n "-" 
    fi
done
echo

Он переваривает содержимое каждого файла либо из: 0 для всех 0, F для всех 1 или - для случая смешения (возможная ошибка).
Например, если dir {1..4} /out.txt - все 0, dir5 / out.txt - смесь, а dir {6..8} /out.txt - все 1, то результат будет выглядеть следующим образом :

0000-FFF

Я надеюсь, что это будет соответствовать требованиям ОП.

31
задан ntownsend 23 April 2009 в 00:14
поделиться

16 ответов

Как правило, это не очень хорошая идея:

Ожидания

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

Надежность

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

Исключение

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

41
ответ дан 27 November 2019 в 21:42
поделиться

No, and it will never really work anyway since the user can prevent your attempts to over-ride it.

0
ответ дан 27 November 2019 в 21:42
поделиться

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

Например, это имеет смысл в Google Spreadsheets - где щелчок правой кнопкой мыши больше похож на Excel и дает вам такие возможности, как, например, копирование выделенного диапазона ячеек - вы не сможете сделать это с обычными щелкните правой кнопкой мыши меню.

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

1
ответ дан 27 November 2019 в 21:42
поделиться

It is not a good idea for normal web applications. I have seen it done in flash/silverlight "web" applications where the user has an expectation of being more like a "desktop" application.

1
ответ дан 27 November 2019 в 21:42
поделиться

Это будет зависеть от контекста. За общедоступный веб-сайт я был бы против. Для веб-приложения, особенно для внутреннего приложения компании, я бы больше согласился.

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

1
ответ дан 27 November 2019 в 21:42
поделиться

В общем я не согласен с «контекстным меню» в веб-приложении , но , если это необходимо, вы должны добавить альтернативный метод , работающий рядом с с контекстным меню и не зависящий от опыта пользователя.

1
ответ дан 27 November 2019 в 21:42
поделиться

I think it is a bad idea to have a right click functionality.

1
ответ дан 27 November 2019 в 21:42
поделиться

Если это веб-сайт , это плохая идея , Пользователи быстро раздражаются веб-сайтами, которые нарушают функциональность их любимых браузеров. Не делайте этого:)

Если это веб-приложение , это не обязательно плохая идея, но вы все равно должны быть осторожны.

Подумайте:

  • пользователь будет чувствовать себя достаточно погруженным в ваше приложение, что он будет естественно склонен хотеть контекстного меню;
  • вы не просто компенсируете плохой дизайн пользовательского интерфейса;
  • браузер Существующая функциональность имеет смысл в контексте вашего приложения.
  • 2
    ответ дан 27 November 2019 в 21:42
    поделиться

    I've noticed FCKeditor has a right click context menu... it might make sense in this example, as the WYSIWYG editor is generally given to people with no HTML experience, and more Microsoft Word experience, and in that case, they expect the right click to do something to their text they're typing.

    I would, generally, say it is bad practice though. Could a floating modal suffice?

    2
    ответ дан 27 November 2019 в 21:42
    поделиться

    Я не занимаю позицию по этому поводу, но ...

    Если вы решите пойти по щелчку правой кнопкой мыши, посмотрите YUI! framework .

    У них уже есть реализация контекстного меню, совместимая с браузерами.

    2
    ответ дан 27 November 2019 в 21:42
    поделиться

    Так как правый клик на сайтах используется очень редко, я бы сказал, что это плохая идея, и ее не считают «наилучшей практикой».

    Если вы делаете что-то другое, чем почти все сайты на в интернете вам нужно, чтобы пользователи тратили время на изучение вашего приложения / сайта.

    Кроме того, у пользователей Mac традиционно нет двух кнопок мыши, и не все пользователи Mac знают, как «щелкнуть правой кнопкой мыши», используя комбинацию щелчка или что бы это ни было в наши дни.

    Так что я бы не стал этого делать, если у вас действительно нет веского основания для этого.

    2
    ответ дан 27 November 2019 в 21:42
    поделиться

    Меню правой кнопки мыши хорошо работает в веб-приложениях. Пока ваши пользователи понимают, что происходит. Существует несколько реализаций контекстного меню. Outlook Web Access предоставляет контекстное меню для работы с электронной почтой.

    2
    ответ дан 27 November 2019 в 21:42
    поделиться

    No, because it's simply not discoverable. Of course, this depends on the application, but likely users won't have a clue to right click.

    When a user is on the Web ("the Internet") they expect to use one button. Think about all the Apple Mighty Mouse users who will have trouble using your site.

    Easiest way to prove to your boss whether the idea will work or not: test on real users. You should be doing this anyway.

    15
    ответ дан 27 November 2019 в 21:42
    поделиться

    Это зависит от типа приложения. Я всегда думал, что это плохая идея, но веб-приложения все время приближаются к настольным приложениям. Поэтому я спросил мастера юзабилити (Nielsen) и, что удивительно, он все для щелчка правой кнопкой мыши !

    ... высококвалифицированные пользователи часто разочарован, когда приложение не поддерживает щелчок правой кнопкой мыши - для Например, если это реализовано во Flash и вызывает меню Flash Player вместо контекстно-уместного команды приложения.

    2
    ответ дан 27 November 2019 в 21:42
    поделиться

    Google Docs - единственное веб-приложение, в котором я ценю любые попытки использовать функциональные возможности щелчка правой кнопкой мыши; и они реализовали его на месте.

    Обновление: Чтобы пояснить немного, я думаю, что реализация хороша, потому что Google Docs (весь сайт / приложение) очень хорошо помогает вам забыть, что вы находитесь в веб-браузер.

    Еще одна мысль: НЕ! Между IE6 / 7/8, Firefox 2/3, Chrome, Safari и другими менее известными браузерами и версиями это звучит как кошмар для поддержки по всем направлениям. Если число ваших пользователей не исчисляется миллионами, одно лишь тестирование, вероятно, является достаточно веской причиной, чтобы его избежать.

    8
    ответ дан 27 November 2019 в 21:42
    поделиться

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

    Большинство приложений Windows и * nix GUI в значительной степени полагаются на контекстные меню для реализации большей части своих функций. Одной из причин того, что Mac OS традиционно хвалят за высокую удобство использования, является то, что истинные опции меню и элементы панели инструментов были предпочтительнее контекстных меню, которые быстро превращаются в гетто вложенных списков (особенно если другим приложениям разрешено внедрять функциональность).

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

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

    3
    ответ дан 27 November 2019 в 21:42
    поделиться
    Другие вопросы по тегам:

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