当用户离开我的页面或浏览器时,我需要发送一些数据。我应该使用哪些事件?我使用react和axios,也许有一些方法可以做到这一点。我尝试使用unload,beforeunload和onbeforeunload事件,但它定期工作。有时它发送数据,但当我再次尝试时,它不起作用。我不需要弹出/警报选项卡“要求用户确认是否关闭选项卡”,当页面即将关闭时出现。
bnlyeluc1#
我认为当你想在用户离开你的页面或关闭浏览器时发送数据时,beforeunload事件是一种常用的方法。使用beforeunload事件可以在某些浏览器中触发确认对话框,并且没有保证网络请求完成的时间。另一种方法是使用unload事件,该事件在页面卸载之前触发。请记住,与beforeunload类似,unload事件在发送数据的可靠性方面也受到限制。我使用unload添加示例代码:
beforeunload
unload
import React, { useEffect } from 'react'; import axios from 'axios'; const MyComponent = () => { useEffect(() => { const cleanup = async () => { try { await axios.post('your-api-endpoint', { yourData }); } catch (error) { console.error('Error sending data on unload:', error); } }; window.addEventListener('unload', cleanup); return () => { cleanup(); window.removeEventListener('unload', cleanup); }; }, []); return ( <div> {/* Your component content */} </div> ); }; export default MyComponent;
字符串
1条答案
按热度按时间bnlyeluc1#
我认为当你想在用户离开你的页面或关闭浏览器时发送数据时,
beforeunload
事件是一种常用的方法。使用
beforeunload
事件可以在某些浏览器中触发确认对话框,并且没有保证网络请求完成的时间。另一种方法是使用
unload
事件,该事件在页面卸载之前触发。请记住,与beforeunload
类似,unload
事件在发送数据的可靠性方面也受到限制。我使用
unload
添加示例代码:字符串