Обнаружить низкую скорость обработки

1

У меня есть веб-приложение, которое представляет собой текстовое поле, которое пользователь может ввести.

Пользователь вводит в поле, а затем нажимает кнопку "Отправить" и выполняет сценарий для отображения изображения.

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

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

Поведение автоматического подчинения контролируется логической переменной, которая по умолчанию равна TRUE.

На мобильном устройстве я хотел бы установить эту переменную в FALSE. Еще лучше было бы установить значение false для медленных устройств, но я не думаю, что это можно обнаружить. Какой самый простой способ сделать это?

  • 0
    @RobG При чем тут размер экрана?
  • 0
    если вы пытаетесь что-то сделать с помощью нажатия клавиш, почему бы не использовать debounce для повышения производительности.
Показать ещё 6 комментариев
Теги:
mobile

2 ответа

1
Лучший ответ

Вы можете использовать функцию debounce только для запуска функции после X-времени, чтобы прекратить печатать, в этой статье вы можете найти, как ее реализовать

function debounce(func, wait, immediate) {
    var timeout;
    return function() {
        var context = this, args = arguments;
        var later = function() {
            timeout = null;
            if (!immediate) func.apply(context, args);
        };
        var callNow = immediate && !timeout;
        clearTimeout(timeout);
        timeout = setTimeout(later, wait);
        if (callNow) func.apply(context, args);
    };
};

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

function isMobile() {
    return /Mobi/.test(navigator.userAgent) || /Android/.test(navigator.userAgent);
}
0

Некоторые из этих ответов могут помочь вам:

https://stackoverflow.com/search?q=determine+mobile

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

  1. показать индикатор занятости.
  2. создайте счетчик x++ в течение 1 секунды..
  3. если x> 10000.. быстрое устройство (всего из моего номера приклада)
  4. если x <10000.. медленное устройство
  5. снимите индикатор занятости и продолжите

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

Кроме того, библиотека, используемая многими пользователями для определения типа "браузера" и функций, которые она предоставляет.

  • 0
    Ой, это решение кажется немного .... шатким, да
  • 0
    Любой другой метод определения производительности должен будет делать что-то подобное. "Как быстро я могу заставить эту вещь делать х ?!" :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню