页面关闭替代方案中的 SyncXHR

SyncXHR in Page Dismissal Alternative

自从 google 声明为 disallow sync XHR in page dismissal 以来,我还没有找到该功能的合适替代品。我试过 sendBeacon,但 64KB 的有效负载限制使它对我的用例毫无用处。此时,我通过直接配置 chromium 标志 (#allow-sync-xhr-in-page-dismissal) 找到了解决方法。但这显然不是最终的解决方案。强迫您的用户调整他们自己的浏览器以使用我们的应用程序是不友好的。

页面关闭选项中是否有任何 syncXHR?

var xhr;
function saveChanges(){
  xhr = new XMLHttpRequest();
  xhr.open('POST',url,false)
  xhr.send(post)
}
window.addEventListener('beforeunload', (event) =>{
  saveChanges();
  if(xhr.readyState == 4) return;
  event.preventDefault();
  event.returnValue = '';
})

归功于:https://groups.google.com/a/chromium.org/g/blink-dev/c/LnqwTCiT9Gs/m/wM0yAjcfAAAJ