`
hhongq
  • 浏览: 41560 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论

关于页面unload之后发送一个请求的问题

 
阅读更多
现在想在页面刷新或者页面跳转的时候,发一个http请求,使用如下方法,有时候可以有时候请求
发不出去,在httpwatch下面会出现Aborted的信息,请求没有发送出去。
-----代码---------------------start
/**
* 用户关闭页面的时候,给服务器发一个http链接
*/
function onlineWindowUnload() {
    if (document.callUrlInnerFrame)
    {
document.callUrlInnerFrame.location.href=“http://www.iteye.com”;
//延时一段时间
var i ;
    for (i = 0 ;i < 200 ;i++) {
i = i + 1;
    }
}

}

window.onunload  =onlineWindowUnload;

-----代码---------------------end

有没有什么方法,可以让页面在关闭的时候,可以sleep一段时间让我这个请求能够顺利发送出去?
分享到:
评论
3 楼 firehack 2007-09-02  
下面的代码应该有你要的东西。

function as_click () {
urchinTracker ('/asclick');
}
 if(typeof window.addEventListener != 'undefined')
 {
  window.addEventListener('load', adsense_init, false);
 }
 else if(typeof document.addEventListener != 'undefined')
 {
  document.addEventListener('load', adsense_init, false);
 }
 else if(typeof window.attachEvent != 'undefined')
 {
  window.attachEvent('onload', adsense_init);
 }
  else
 {
   if(typeof window.onload == 'function')
 {
  var existing = onload;
  window.onload = function()
 {
  existing();
  adsense_init();
 };
 }
 else
 {
  window.onload = adsense_init;
 }
 }
function adsense_init () {
if (document.all) {  
var el = document.getElementsByTagName("iframe");
for(var i = 0; i < el.length; i++) {
if(el[i].src.indexOf('googlesyndication.com') > -1) {
el[i].onfocus =  as_click;
}
}
} else {   window.addEventListener('beforeunload', doPageExit, false);
window.addEventListener('mousemove', getMouse, true);
}
}
var px;
var py;
function getMouse(e) {
px=e.pageX;
py=e.clientY;
}
function findY(obj) {
var y = 0;
while (obj) {
y += obj.offsetTop;
obj = obj.offsetParent;
}
return(y);
}
function findX(obj) {
var x = 0;
while (obj) {
x += obj.offsetLeft;
obj = obj.offsetParent;
}
return(x);
}
function doPageExit(e) {
ad = document.getElementsByTagName("iframe");
for (i=0; i<ad.length; i++) {
var adLeft = findX(ad[i]);
var adTop = findY(ad[i]);
var inFrameX = (px > (adLeft - 10) && px < (parseInt(adLeft) + parseInt(ad[i].width) + 15));
var inFrameY = (py > (adTop - 10) && py < (parseInt(adTop) + parseInt(ad[i].height) + 10));
if (inFrameY && inFrameX) {
urchinTracker('/asclick');
}
}
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
2 楼 D-tune 2007-09-02  
lz可以试试window.onbeforeunload事件看看
1 楼 campaign 2007-09-01  
不是很理解你的需求,但你的代码可以这么写

function onlineWindowUnload() { 
if (typeof document.callUrlInnerFrame != 'undefined')//建议你这么写 
{ 
setTimeout('document.callUrlInnerFrame.location.href=“http://www.iteye.com"',1000);//延时一秒后执行跳转

}
}

相关推荐

    在Web关闭页面时发送Ajax请求的实现方法

    浏览器有两个事件可以用来监听页面关闭,beforeunload和unload。 beforeunload是在文档和资源将要关闭的时候调用的, 这时候文档还是可见的,并且在这个关闭的事件还是可以取消的。比如下面这种写法就会让用户导致...

    Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求

    在Vue框架中,实现监听窗口关闭事件并在关闭前发送请求的功能,对于需要在用户离开页面之前进行某些清理或保存数据的操作尤为重要。本文将详细介绍如何在Vue项目中实现这一功能,并提供相应的代码示例。 ### 监听...

    asp.net架构基础知识--asp.net请求的处理过程

    首先,ASP.NET请求处理过程始于客户端向服务器发送一个HTTP请求。这个请求可能是一个HTML页面、一个Web服务调用或者是AJAX请求。一旦服务器接收到请求,IIS(Internet Information Services)作为Web服务器接管,它...

    通俗理解页面生命周期

    页面生命周期指的是一个ASP.NET页面从创建到销毁的过程。这个过程可以分为以下几个阶段: 1. **初始化 (Init)**:在这个阶段,页面及其控件被创建。控件可以在此阶段设置其属性,但不能执行业务逻辑。 2. **加载...

    Asp#Net页面生命周期[转].pdf

    它描述了从用户在浏览器中请求一个网页,到服务器处理请求,再到最终页面呈现给用户的一系列步骤。以下是对Asp.Net页面生命周期的详细解释: 1. **请求处理**: 当用户在浏览器中输入URL并提交请求时,请求被发送...

    asp页面加载事件顺序

    5. **预呈现(Prerender)**:`Page_Prerender`事件是页面准备发送回客户端之前的一个关键点。在这个阶段,开发者可以做最后的调整,比如设置控件的文本或者属性。 6. **保存视图状态(Save View State)**:在`...

    ASP.NET页面周期详解

    在这个过程中,一个ASP.NET页面从用户的请求开始,经过一系列的生命周期阶段,直到最终响应被发送回客户端。让我们详细探讨一下这个过程。 首先,ASP.NET页面的类结构是基于继承的。`Page`类是从`TemplateControl`...

    Aspx页面生命周期

    页面生命周期是指一个 ASPX 页面从被请求到处理完毕并发送响应的整个过程。熟悉这个过程有助于开发者更好地控制页面行为,优化性能,并确保页面能够正确地响应用户的操作。 #### 二、主要阶段 ASPX 页面生命周期...

    asp.net页面生命周期

    页面生命周期指的是从用户请求一个页面到浏览器接收页面响应的整个流程。了解这个流程有助于开发者更好地控制页面的行为,比如何时加载控件状态、何时执行事件处理程序等。 #### 二、ASP.NET页面生命周期概述 ASP...

    记录页面停留时间和遮罩层

    1. 当用户打开一个页面时,可以在`window.onload`事件中设置一个变量`startTime`记录当前时间。 2. 同时,监听`window.beforeunload`或`window.unload`事件,当用户离开页面时,触发这些事件,此时记录下`endTime`。...

    ASP.NET页面事件.rar

    ASP.NET框架为每一个服务器控件提供了一系列的生命周期事件,使得开发者能够精确控制用户请求处理的过程。以下是对ASP.NET页面事件的详细解释: 1. **页面生命周期** - **初始化(Init)**:页面加载的开始阶段,...

    静态页面的传值

    7. **iframe通信**:如果两个页面在一个窗口内(例如一个页面嵌入在另一个页面的iframe中),可以利用`postMessage`和`message`事件进行通信,传递数据。 在提供的"测试静态页面传值"压缩包中,可能包含了以上提到...

    ASP.Net页面生命周期

    ASP.NET页面生命周期是ASP.NET应用程序开发中的核心概念,它描述了从用户请求页面到服务器响应完成的整个过程。了解这个生命周期对于高效、准确地编写ASP.NET代码至关重要。 1. **初始化对象** 在页面生命周期的...

    asp.net生命周期

    1. 浏览器请求:浏览器向服务器发送请求,可能包含POST数据。 2. 页面框架初始化:ASP.NET创建页面对象,初始化所有由.aspx文件标记定义的控件,同时恢复视图状态(如果有的话)。 3. 页面加载:Page_Load事件触发,...

    记录用户停留时间

    1. 在action.aspx中,创建一个计时器变量,如`var timer;`,并在`$(document).ready()`事件中启动计时器,例如`timer = setInterval(function() { /* 更新停留时间 */ }, 1000);`,每秒更新一次停留时间。 2. 需要...

    Web Page的生命周期详解

    8. **Unload**:最后,页面生命周期进入卸载阶段,页面及其所有控件的内存资源被释放,以准备处理下一个请求。这是清理和关闭任何打开的连接或资源的重要时机。 理解Web Page的生命周期对于开发高效、可靠的ASP.NET...

    ASP生命周期

    当客户端通过浏览器向服务器发送请求时,请求被IIS (Internet Information Services) 接收。IIS根据配置将请求转发给特定的应用程序池(Application Pool),应用程序池是IIS的一个特性,用于隔离和管理不同的应用...

    .net生命周期详细介绍

    3. **创建应用程序域**:如果是该网站的首次请求,则创建一个新的应用程序域。应用程序域确保了不同Web应用间的隔离。 4. **初始化宿主环境**:应用程序域内创建`HttpRuntime`对象,随后创建其他核心对象如`...

Global site tag (gtag.js) - Google Analytics