【问题标题】:perfomance mixing javascript and jquery [duplicate]性能混合javascript和jquery [重复]
【发布时间】:2019-08-27 03:12:43
【问题描述】:

关于这个话题有很多讨论,但我想澄清我的歧义或困惑 - 我的混合代码是否有意义。

以前我认为Jquery 在各个方面都是最舒适的,从易用性到灵活程度。毫无疑问,我们可以使用 Jquery 创建庞大而强大的客户端应用程序。

所以我一直在使用Jquery,即使是在小而简单的任务中。但是在考虑性能的同时,我发现如果可以的话,人们会推荐纯 JavaScript。我阅读了很多论坛,关于性能的问题/答案,然后我意识到我在不必要地使用 Jquery。

例如,我曾经用来做简单的任务

var value = $('#div').text();

而不是

var value = document.getElementById('div').innerHTML;

此外,即使在简单的选择中,我也使用了最大的$.each,这可以通过document.querySelector 或纯javascript for 循环来完成

我无法避免使用 Jquery,但可以尽量减少。因此,浏览器必须加载 jquery。

现在我在外部.js 文件中最小化了 jquery 的使用,对简单任务使用纯 JavaScript 代码,对复杂任务使用 jquery。

现在我的问题是

现在我的性能会比以前的方式更好更快吗(我只使用 jquery)?

$如果初始化一次,会不会影响其他纯javascript代码?

为了更清楚,

第二个比第一个快吗?

仅限 Jquery

function purchase(){
    $.ajax({
        url:"fetch.php",  
        method:"POST",  
        data:{prch_id:'pty'},
        beforeSend: function() {
            $('.pty').html('Processsing');
        },
        success:function(data){
            $('.pty').html(data);
            auto_select();
        }
    }); 
}

使用 Jquery 编写 JavaScript

function purchase(){
    var http = null;
    if(window.XMLHttpRequest){
        http = new XMLHttpRequest();
    }
    else{
        http = new ActiveXObject('Microsoft.XMLHTTP');
    }
    var vars = "prch_id=pty";
    http.open('POST','fetch.php',true);
    http.setRequestHeader('Content-type','application/x-www-form-urlencoded');
    http.onreadystatechange = function(){
        if(http.readyState==4 && http.status==200){
            var data = http.responseText;
            $('.pty').html(data);
            auto_select();
        }
    }
    http.send(vars);
        $('.pty').html('Processsing');
}

如果我们只使用纯 JavaScript - 它肯定很快,但我想知道 jquery 和 JavaScript 的混合改进或没有任何意义。

【问题讨论】:

  • 您是否将 JavaScript/Jquery 与任何其他框架/库(例如 React 或 Angular)一起使用?
  • @wentjun,不,我没有做,只有 JavaScript/Jquery
  • 如果你不是,那么使用 Jquery 就很好,因为它有助于使事情变得更容易,而且 Jquery 本身的开销也不是那么糟糕,因为你不再使用库了.
  • 但是,我不建议您将 Jquery 与框架、React、Angular 或 Vue 一起使用。
  • 我将从对当前性能进行基准测试开始,浏览器的开发工具就可以了。该网站是否存在实际问题?是否存在脚本需要大量时间的操作 - 对用户来说 - 并且切换到本机 JavaScript 会显着缩短它?事实证明,您正在尝试解决您没有遇到的问题。

标签: javascript jquery


【解决方案1】:

在你的情况下没关系,因为 jquery 已经加载,而且 jquery 函数只是在幕后调用所说的纯 javascript 函数,所以差别很小,纯 javascript 更快,但如果你要去为了构建强大的前端,我建议继续使用 MVVM 框架,例如 reactjs

【讨论】:

  • 你的意思是如果一旦加载了jquery,那么使用原生javascript和jquery就没有用或没有区别了,不是吗?
  • 我的意思是纯 javascript 仍然会快一点,因为 jquery 在后台调用相同的 api
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-02
相关资源
最近更新 更多