功能描述:
用户关闭窗口时把用户flash播放器数据写入数据
问题:
oSwf为播放器控件.....
oSwf.js_sendDataTwo();flash播发器会调用前台js页面,调用js里有相应ajax请求,将数据存入数据库
为不影响用户操作,ajax只能设为异步
而现在这种情况无法写入数据库....
想让页面等两秒,等待写入后页面关闭....
但数据仍然无法写入....
盼解决:
1、window.onbeforeunload ajax 异步存储信息 可行方案
2、为什么页面等2秒,数据仍不可写入?
- JScript code
window.onbeforeunload = function (){ if(oSwf){ //alert("true"); oSwf.js_sendDataTwo(); //setTimeout("oSwf.js_sendDataTwo()",1); //sleep(2000); //alert("sending"); } return; } function sleep(numberMillis) { var now = new Date(); var exitTime = now.getTime() + numberMillis; while (true) { now = new Date(); if (now.getTime() > exitTime) return; } }
------解决方案--------------------
onbeforeunload 事件是不可靠的,一般不使用这个事件进行服务器端的处理。一般用它提示页面关闭是否进行保存页面的上的内容
------解决方案--------------------
用同步。
我在window.onunload 中 用异步,页面关闭会终止请求。值不会保存到数据库。
用同步就可以成功