Chrome 下,重复使用 XMLHttpRequest进行Post数据时,遇到一个奇怪的问题
var http_request; //在外面申明对象,主要为了在updatePage中使用
//无刷新更新内容
function post(url,parameter)
{
if(http_request==null)
{
http_request = getHttpRequest();
}
if (!http_request)
{
alert("XMLHttpRequest 初始化失败!");
}
else
{
//在url尾部加一个rnd随机数,这样就不会发生读取ie缓存
if(url.indexOf("?") > -1)
{
url = url + "&rnd=" + Math.random();
}
else
{
url = url + "?rnd=" + Math.random();
}
http_request.open("POST", url, false); //打开请求 //false 同步, true 异步
http_request.onreadystatechange = updatePage; //设置回调方法
http_request.setRequestHeader("Content-length", parameter.length);
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http_request.send(parameter); //发送请求
}
}
//回调方法
function updatePage()
{
if (http_request.readyState == 4)
{
if(http_request.status == 200)
{
alert("..."); //
}
}
}
测试发现,在chrome 26下,如果申明了一个公共的变量:http_request
然后多次重复使用XMLHttpRequest时,如果Post时,传递了参数(内容),那么会连续执行2次回调函数: updatePage()
如果Post时没有传参数(内容),只会执行1次回调函数: updatePage()
在firefox和ie下测试,只会执行1次回调函数: updatePage()
解决在chrome 26下遇到的这个问题,也很简单,每次使用http_request(XMLHttpRequest)时,都重新初始化一下:
http_request = getHttpRequest();
Chrome 下,重复使用 XMLHttpRequest进行Post数据时,遇到一个奇怪的问题的更多相关文章
- Windows下Java File对象创建文件夹时的一个"坑"
import java.io.File; import java.io.IOException; public class DirCreate { public static void main(St ...
- echarts折线图动态改变数据时的一个bug
echarts折线图中当增加dataZoom,修改start大于0的时候,会出现折线混乱,变成竖直的线,绘制有问题. 解决方法,在dataZoom中增加filterMode: 'empty' http ...
- mysqldump还原备份数据时遇到一个问题
问题描述 ERROR 1839 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_MODE = O ...
- iOS不得姐项目--推荐关注模块(一个控制器控制两个tableView),数据重复请求的问题,分页数据的加载,上拉下拉刷新(MJRefresh)
一.推荐关注模块(一个控制器控制两个tableView) -- 数据的显示 刚开始加载数据值得注意的有以下几点 导航控制器会自动调整scrollView的contentInset,最好是取消系统的设置 ...
- HBase指定大量列集合的场景下并发拉取数据时卡住的问题排查
最近遇到一例,HBase 指定大量列集合的场景下,并发拉取数据,应用卡住不响应的情形.记录一下. 问题背景 退款导出中,为了获取商品规格编码,需要从 HBase 表 T 里拉取对应的数据. T 对商品 ...
- kindeditor在Firefoxt 和 Chrome 下不能取到值的解决方法
默认form模式提交数据的时候,在ie下用户不需要进行任何设置和调用sync函数,因为editor已经自动调用,但是在firefox和 chrome下,用户如果不手动调用sync函数,editor的数 ...
- SQLSERVER去除某一列的重复值并显示所有数据\DISTINCT去重\ISNULL()求SUM()\NOT EXISTS的使用
进入正题,准备我们的测试数据 1.我们要筛选的数据为去除 GX 列的重复项 并将所有数据展示出来,如图所示: ' 2.这种情况下我们是不可以使用DISTINCT来去重的,我们可以来尝试一下: 首先,单 ...
- Asp.net core下利用EF core实现从数据实现多租户(3): 按Schema分离 附加:EF Migration 操作
前言 前段时间写了EF core实现多租户的文章,实现了根据数据库,数据表进行多租户数据隔离. 今天开始写按照Schema分离的文章. 其实还有一种,是通过在数据表内添加一个字段做多租户的,但是这种模 ...
- kafka如何保证不重复消费又不丢失数据_Kafka写入的数据如何保证不丢失?
我们暂且不考虑写磁盘的具体过程,先大致看看下面的图,这代表了 Kafka 的核心架构原理. Kafka 分布式存储架构 那么现在问题来了,如果每天产生几十 TB 的数据,难道都写一台机器的磁盘上吗?这 ...
随机推荐
- jdbcTemplete(转)
文章来源:http://blog.csdn.net/dyllove98/article/details/7772463 JdbcTemplate主要提供以下五类方法: execute方法:可以用于执行 ...
- [转]java实现,输入数据,空格继续,回车结束输入
普通版:可输入,可输出.带详细的注释 import java.util.Scanner; public class SumDemo { public static void main(String[] ...
- 开源通用爬虫框架YayCrawler-框架的运行机制
这一节我将向大家介绍一下YayCrawler的运行机制,首先允许我上一张图: 首先各个组件的启动顺序建议是Master.Worker.Admin,其实不按这个顺序也没关系,我们为了讲解方便假定是这个启 ...
- Java面向对象(Eclipse高级、类与接口作为参数返回值)
面向对象 今日内容介绍 u Eclipse常用快捷键操作 u Eclipse文档注释导出帮助文档 u Eclipse项目的jar包导出与使用jar包 u 不同修饰符混合使用细节 u 辨析何时定义变 ...
- 自己实现数据结构系列一---ArrayList
1.先上代码: public class ArrayList<E> { private E[] data; private int size; /** * 构造方法,初始化容量capaci ...
- 使用phpstudy创建本地虚拟主机
在使用php开发网站的时候,每次测试自己的网站时,通常都是用localhost/dirname/filename.php来访问自己所写的程序 但是有时候我们需要模拟真实的场景,如通过域名访问时,如果你 ...
- 深入理解 Laravel 中 config 配置加载原理
Laravel的配置加载其实就是加载config目录下所有文件配置.如何过使用php artisan config:cache则会把加载的配置合并到一个配置文件中,下次请求就不会再去加载config目 ...
- datetime的小坑
在做悦运动这个项目时,在创建约运动关系表时,运动开始时间,注意(导入datetime包时,我导入的是class datetime(__datetime.date)这个类,可以调用这个类中的方法,调用当 ...
- 一本通1536数星星 Stars
1536:[例 2]数星星 Stars 时间限制: 256 ms 内存限制: 65536 KB [题目描述] 原题来自:Ural 1028 天空中有一些星星,这些星星都在不同的位置,每 ...
- BZOJ5093 图的价值(NTT+斯特林数)
显然每个点会提供相同的贡献.于是现在只考虑1号点的贡献.若其度数为i,则在2~n号点选i个连上,剩下的边随便连,这样可以算出答案为 这个式子可以O(n)计算.发现k比较小,于是考虑如何将这个式子化为与 ...