ie onbeforeunload 请求后台 断开连接
来源:互联网 发布:爆炸物品数据上报日期 编辑:程序博客网 时间:2024/06/06 12:51
方法一:解决方法是 在卸载页面前 请求一个img ,src 是要请求的url
//页面卸载保存session$window.onbeforeunload = function(){var params = {taskId : $rootScope.taskInfo.taskId,afterId :$scope.defaultSetting.lastTaskId ,dependIds : $scope.subTaskDependList.join(","),wdependIds :$scope.whichDependSubTaskList.join(","),projName : $scope.projectNameList.join(","),projType : $scope.defaultSetting.projectTypeId,projRole : $scope.defaultSetting.projectOwnerRoleId,projPo: $scope.defaultSetting.projectOwnerId,projTemp : $scope.defaultSetting.templateId,addProjType: $scope.defaultSetting.addProjType,fixedDate : $scope.subFixedDateSel ,addSubProjType :$scope.defaultSetting.createSubProjectType};var img=$("<img>")img.attr("src",baseUrl+"service/task/process/addProjectTask/saveAddProjectTaskSession?"+$.param(params))$("body").append(img)}
方法二:用普通jq ajax 但是url 要绝对路径
var u=window.location.origin+baseUrl//页面卸载保存session$window.onbeforeunload = function(){var params = {taskId : $rootScope.taskInfo.taskId,afterId :$scope.defaultSetting.lastTaskId ,dependIds : $scope.subTaskDependList.join(","),wdependIds :$scope.whichDependSubTaskList.join(","),projName : $scope.projectNameList.join(","),projType : $scope.defaultSetting.projectTypeId,projRole : $scope.defaultSetting.projectOwnerRoleId,projPo : $scope.defaultSetting.projectOwnerId,projTemp : $scope.defaultSetting.templateId,addProjType : $scope.defaultSetting.addProjType,fixedDate : $scope.subFixedDateSel ,addSubProjType :$scope.defaultSetting.createSubProjectType}$.ajax({url:u+"service/task/process/addProjectTask/saveAddProjectTaskSession",type:"GET",data: params}); }
知识点:
jQuery ajax - param() 方法
序列化一个 key/value 对象:
var params = { width:1900, height:1200 };
var str = jQuery.param(params);
结果:
width=1680&height=1050
该序列化值可在进行 AJAX 请求时在 URL 查询字符串中使用。
除了key/value 还可以是数组对象。
var arrScore =[{name:"first",value:"Rick"},
{name:"last",value:"Astley"},
{name:"job",value:"Rock Star"}]
alert($.param(arrScore))
结果
first=Rick&last=Astley&job=Rock+Star
我们可以如下显示对象的查询字符串表示以及 URI 编码版本:
var myObject = {
a: {
one: 1,
two: 2,
three: 3
},
b: [1,2,3]
};
var recursiveEncoded = $.param(myObject);
var recursiveDecoded = decodeURIComponent($.param(myObject));
alert(recursiveEncoded);
alert(recursiveDecoded);
结果:
recursiveEncoded:
a%5Bone%5D=1&a%5Btwo%5D=2&a%5Bthree%5D=3&b%5B%5D=1&b%5B%5D=2&b%5B%5D=3
recursiveDecoded :
a[one]=1&a[two]=2&a[three]=3&b[]=1&b[]=2&b[]=3
//$.param() 序列化成url字符串
var man = { Name: "张飞", Age: 23 };
var str = $.param(man);
console.log(str); //Name=%E5%BC%A0%E9%A3%9E&Age=23
var str1 = decodeURI(str);
console.log(str1); //Name=张飞&Age=23
//$.parseJSON() 该函数会解析JSON格式的字符串,并返回解析结果(对象)。 类似于JSON.parse()
var man = { name: "张三", age: 23 };
var str = JSON.stringify(man); //stringify用于从一个对象解析出字符串
console.log(str); //{"name":"张三","age":23}
var man1 = $.parseJSON(str); //parseJSON 用于从一个字符串中解析出json 对象
var man2 = JSON.parse(str); //parse 用于从一个字符串中解析出json 对象
console.log("$.parseJSON " + man1.name + man1.age); //张三23
console.log("JSON.parse " + man2.name + man2.age); //张三23
参考文献
http://blog.csdn.net/chenchunlin526/article/details/62226746
- ie onbeforeunload 请求后台 断开连接
- IE引起onbeforeunload异常解决
- Flash/Flex解决IE缓存,socket不能断开连接问题
- 异步调用 后台调用 持续执行 断开连接/浏览器
- 何时触发IE的onBeforeUnload事件
- onbeforeunload事件之fireFox、IE、chrome
- c3p0连接池连接MySql数据库时,无请求自动断开连接的解决方案
- 在IE下JQ使用POST请求后台乱码解决
- onbeforeunload
- 基于TCP发送http请求建立连接与断开连接的过程
- Unix/Linux中后台运行程序(断开shell连接后继续执行)的几种方式
- COCOS2DX APK客户端进入后台后自动断开,SOCKET连接的时间是230秒
- PHP 在 Nginx 下主动断开连接 Connection Close 与 ignore_user_abort 后台运行
- 手柄连接断开时, 后台运行的activity被重新加载
- Linux让进程后台运行且连接断开不影响(nohup、setsid、disown、screen)
- mysql连接和断开
- 断开所有数据库连接
- 断开GPRS连接
- 安卓TabLayout+ViewPager的使用
- Oracle GoldenGate 介绍pdf
- Oracle-GoldenGate技术架构概述pdf
- 【Redis缓存机制】6.Set集合类型操作使用
- Android压缩图片和libjpeg库
- ie onbeforeunload 请求后台 断开连接
- JAVA线程池原理以及几种线程池类型介绍
- JAVA 巧用继承降低需求变化时对现有代码的改动
- 线程实例模仿人在银行取钱
- ps 的简单应用
- js常用的字符串方法分析
- Poj 2823 Sliding Window【单调队列学习】模板记录
- Unity Shader-渲染队列,ZTest,ZWrite,Early-Z
- 【Redis缓存机制】7.SortSet排序集合类型操作