← jQuery error()方法:从应用到弃用的技术复盘 jQuery.parseJSON():严格模式下的JSON解析利器 →

jQuery.now():获取毫秒级时间戳的轻量方案

原创 2026-05-04 jQuery 已有人查阅

在JavaScript或jQuery的日常开发中,我们经常需要获取当前时间。提到这个需求,很多人的第一反应是使用 new Date() 对象,再通过其方法去拼接年、月、日、时、分、秒。但如果你的目的只是计算一段代码的执行耗时、给异步请求做时间标记,或者生成一个简单的唯一标识,去构造一个完整的Date对象就显得有些“重”了。

我今天要聊的 jQuery.now() 方法,就是一个更直接、开销更小的选择。

核心知识:它到底返回的是什么?

$.now() 返回的是一个单纯的数字,这个数字代表从1970年1月1日午夜(UTC)到当前时刻所经过的毫秒数。这个数值,就是我们常说的Unix时间戳

这和我们写 (new Date()).getTime() 或者原生JavaScript的 Date.now() 效果几乎一致。那为什么还要用 jQuery.now()?原因很简单,如果你的项目已经深度依赖jQuery,那么这个方法是内建的,省去了你记忆不同浏览器对 Date.now() 兼容性的烦恼。在早期IE8等浏览器中,Date.now() 是不被支持的,那个时候 $.now() 作为一个可靠的跨浏览器垫片方案非常有价值。

我个人建议:在现在浏览器环境下,Date.now() 已经是标准方法,效率略高于 $.now()。但当你维护一个老项目,或者你的代码库本身高度依赖jQuery时,直接写 jQuery.now() 能让代码风格保持统一,可读性反而会更好。这不是技术优劣的问题,而是项目一致性的选择。

语法与参数

$.now() 的接口设计得非常干净。

语法: jQuery.now()

参数: 无。这个方法不接受任何参数。

它就是一个纯函数,调用即返回值。

实际示例:计算按钮点击的响应时间

这个例子不是简单地弹出一个时间戳,而是模拟一个实际场景:用户点击一个按钮,系统处理了一个比较耗时的任务,然后我们用 $.now() 来计算这个任务到底花了多久。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery.now() 性能计时示例</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>

<h2>代码执行时间测量</h2>
<p>点击下面这个按钮,会模拟一个耗时任务,并计算其执行毫秒数。</p>
<button id="actionBtn">执行任务</button>
<p id="result"></p>

<script>
$(document).ready(function(){
  $("#actionBtn").click(function(){
    // 1. 记录任务开始前的毫秒时间戳
    var startTime = jQuery.now();
    
    // 2. 模拟一个耗时操作(例如大量的DOM计算或数据处理)
    // 这里用循环来模拟一个约1000毫秒的任务
    var counter = 0;
    for(var i = 0; i < 10000000; i++){
      counter += Math.sqrt(i);
    }
    
    // 3. 记录任务结束后的时间戳并计算差值
    var endTime = jQuery.now();
    var executionTime = endTime - startTime;
    
    // 4. 将耗时显示在页面上
    $("#result").text("任务执行耗时:" + executionTime + " 毫秒。");
  });
});
</script>
</body>
</html>

在这个示例里,$.now() 的角色是一个精密的计时器。点击按钮后,页面会显示出模拟任务的真实耗时。这就是时序记录的核心用法,不需要任何日期格式化,直接对数值做减法就行。

本节课程知识要点

  1. jQuery.now() 返回自1970-01-01 00:00:00 UTC以来的毫秒数,是一个纯粹的数值,不携带年月日信息。

  2. 该方法自jQuery 1.4.3版本后,便作为原生 Date.now() 的一个可靠替代方案而存在,用于解决旧版浏览器的兼容性问题。

  3. 在需要性能测量生成唯一ID记录操作日志等只关心时间间隔或时间点的场景中,它的优势明显。

  4. 请注意,$.now() 是挂载在jQuery全局对象上的工具方法,调用时是 jQuery.now() 或 $.now(),它不是针对DOM元素的实例方法。

  5. 如果你的项目已经不用jQuery了,原生 Date.now() 是现在开发中更为直接的选择,无需为此额外引入一个库。

← jQuery error()方法:从应用到弃用的技术复盘 jQuery.parseJSON():严格模式下的JSON解析利器 →
分享笔记 (共有 篇笔记)
验证码:
微信公众号