检测低处理速度



我有一个Web应用程序,本质上是一个用户可以输入的文本框。

用户在框中键入内容,然后单击"提交"按钮,它将执行脚本以显示图像。

使用 AngularJS,我还可以在用户在框中键入时调用相同的 JS 函数,无需单击按钮并提供更流畅的体验。

但是,这意味着这个相当冗长和密集的函数每秒可以调用多次,特别是对于快速打字机。在桌面上,这没有问题。在移动设备上 - 至少是入门级移动设备 - 它非常慢,是一种可怕的体验。

自动提交行为由默认TRUE的布尔变量控制。

在移动设备上,我想将此变量设置为 FALSE .更好的是将其设置为慢速设备的 false,但我认为无法检测到。最简单的方法是什么?

您可以使用去抖动函数仅在 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);
}

其中一些答案可能会对您有所帮助:

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

(但为了好玩... 嗯......先是摇摇晃晃的方式..您可以在加载页面时执行性能计时器。

  1. 显示繁忙指示器..
  2. 创建一个计数器 x++ 1 秒。
  3. 如果 x> 10000.. 快速设备(总计超出我的屁股数(
  4. 如果 x <10000.. 慢速设备
  5. 删除忙音指示器并继续

就像我说的......这很不稳定,人们会争辩说a(你在浪费时间,b(你在浪费电池。如果以后真的改善了用户体验,不会提出这个论点。

还有许多人用来确定浏览器"类型"及其提供的功能的库。

相关内容

  • 没有找到相关文章

最新更新