Day: 2022年8月18日

他来了!性能吊打 Node.js 和 Deno 的新一代 javaScript 运行时!

今天跟大家介绍一个最新开源的 javaScript 运行时:Bun.js

他来了!性能吊打 Node.js 和 Deno 的新一代 javaScript 运行时!_第1张图片

刚开源不到一个月就获得了 19.5k star!看起来马上就会成为 Node.js 和 Deno 的一大竞争对手了!

和传统的 Node.js 这种传统的 javaScript 运行时不同,Bun.js 直接内置了打包器、转译器、任务运行器和 npm 客户端,这意味着你不再需要 Webpack/Rollup/esbuild/Snowpack/Parcel/Rome/swc/babel 就可以直接运行 TypeScript、JSX!…

        

Beacon API的应用-在浏览器被关闭之前要调用一个后端提供的请求

遇到了一个需求就是,在浏览器被关闭之前要调用一个后端提供的请求,我一开始用axios,信誓旦旦的说,木有问题,后端后来告诉我,没有接收到有请求,这个时候我就去排除下原因,我debugger看了下,明明有发送请求只不过在unload的时候还是pending状态。猜测是不是请求被中断了。尝试用同步请求发现还是没有用,那我能想到的就是用原生的http同步请求,但是缺点也很明显,性能差。所以我又百思不得其解,终于在mdn上找到了一个api

window.addEventListener("unload", function() {
      let ISEdit = sessionStorage.getItem("isCanEdit") == "true" ? true : false;
      if (ISEdit) {
        let params = new FormData();
        params.append("patientContentId", self.getquestionId);
        navigator.sendBeacon(
          `${config.baseurl}/patient/deleteExclusive`,
          params
        );
        ;
      }
    });

要后端配合的就是需要post请求并且要改成formdata方式入参,大功告成

 

Question & Solution
Beacon API 不会延缓网页卸载,不会严重影响用户体验。

为了解决网页卸载时,异步请求无法成功的问题,浏览器特别实现了一个 …