JS 实现 ajax 异步浏览器兼容问题

废话不多说了,直接给大家贴代码了,具体代码如下所示:

<td>
<input type="button" value="订单详情"
id="but<s:property value="#o.oid"/>"
onclick="showDetail(<s:property value="#o.oid"/>)"/>
<div id="div<s:property value="#o.oid"/>"></div>
 </td>
<script type="text/javascript">
function showDetail(oid){
var but = document.getElementById("but"+oid);
var div1 = document.getElementById("div"+oid);
if(but.value == "订单详情"){
// 1.创建异步对象
var xhr = createXmlHttp();
// 2.设置监听
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 200){
div1.innerHTML = xhr.responseText;
}}
}
// 3.打开连接
xhr.open("GET",
"${pageContext.request.contextPath}/
adminOrder_findOrderItem.action?oid="+oid+"&time=
"+new Date().getTime(),true);
// 4.发送
xhr.send(null);
but.value = "关闭";
}else{
div1.innerHTML = "";
but.value="订单详情";
}
}
function createXmlHttp(){
var xmlHttp;
try{ // Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
 }
catch (e){
try{// Internet Explorer
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
 }
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){}
 }
 }
return xmlHttp;
}
</script>
// 根据订单的id查询订单项:
public String findOrderItem(){
// 根据订单id查询订单项:
List<OrderItem> list = orderService.findOrderItem(order.getOid());
  // 显示到页面:
ActionContext.getContext().getValueStack().set("list", list);
  // 页面跳转
return "findOrderItem";
}
<table width="100%">
 <s:iterator var="orderItem" value="list">
 <tr>
  <td><img width="40" height="45" src="${ pageContext.request.contextPath }/<s:property value="#orderItem.product.image"/>"></td>
  <td><s:property value="#orderItem.product.pname"/></td>
  <td><s:property value="#orderItem.count"/></td>
  <td><s:property value="#orderItem.subtotal"/></td>
 </tr>
 </s:iterator>
</table>

以上所述是小编给大家介绍的JS 实现 ajax 异步浏览器兼容问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 总结AJAX相关JS代码片段和浏览器模型

    在.net开发中,充分利用免费控件是好事情,但是如果不能修改控件达到自己的需求,就要动用JS大法了,前提是研究好浏览器模型 的各种对象的方法属性.尤其是熟悉CSS+HTML就会做的很酷.就JS语言本身来说要求不高. 1.动态删除Table 里面内容技巧,不需要写太多代码,一行: tb.removeNode(true) 2.动态增加行,除了CreateElement方法,还可以这样比较短小: <table id=tb1></table> <SCRIPT> function

  • Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因

    看到别人写的JS,ajax请求地址后加随机参数,比如XXXX?t= + new Date().getTime(). 一开始搞不懂为什么,网上查了资料,原因是防止浏览器缓存. 浏览器为了提高用户访问同一页面的速度,会对页面数据进行缓存.当url请求地址不变时, 有时候会导致浏览器不发送请求,直接从缓存中读取之前的数据. 如果数据改变了,而没加随机数,读取的数据会跟之前一样. 加上随机数,就是欺骗浏览器url改变了,会每次都向服务器发送请求而不去读缓存

  • Ajax清除浏览器js、css、图片缓存的方法

    做东东时都是把图片在服务器的地址存放在数据库里面,然后到浏览器中显示,但是后来发现了两个问题. 第一:为了安全起见,js是无法读取本地的图片的,不然你写一个js,岂不是可以获取任何人电脑里面的文件了. 第二:图片存在的是在服务器的硬盘上面,而不是在客户的硬盘里面,所以也是取不到的 后来在网上找方法,找的方法,都是各种转换二进制到xml中,的各种高大上的答案,然后本人又实在太懒了,就自己想了一个 方法,就是利用BufferedImage这个类. 开始 首先说说我的思路,就是把本地的图片,加载到内存

  • js与jQuery实现的兼容多浏览器Ajax请求实例

    ajax我们经常会用到的,但网上找到的大部份ajax兼容性都不强,下面自己改了一个不错的兼容性很强的ajax函数,同时后面介绍的jquery ajax 兼容性也很强. 一.纯js实现的Ajax实例: 复制代码 代码如下: var ajax = function() {}; ajax.prototype = {     request: function(method, url, callback, postVars) {         var xhr = this.createXhrObjec

  • JS 实现 ajax 异步浏览器兼容问题

    废话不多说了,直接给大家贴代码了,具体代码如下所示: <td> <input type="button" value="订单详情" id="but<s:property value="#o.oid"/>" onclick="showDetail(<s:property value="#o.oid"/>)"/> <div id=&quo

  • 推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)

    判断是否IE浏览器用的是window.navigator.userAgent,跟踪这个信息,发现在开发环境,识别为IE10,但访问服务器则识别为IE11,但IE11的userAgent里是没有MSIE标志的,原因就是这个了. 把判断IE浏览器的方法改成如下就可以了. function isIE() { //ie? if (!!window.ActiveXObject || "ActiveXObject" in window) return true; else return false

  • js Date()日期函数浏览器兼容问题解决方法

    一般 直接new Date() 是不会出现兼容性问题的,而 new Date(datetimeformatstring) 常常会出现浏览器兼容性问题,为什么,datetimeformatstring中的某些格式浏览器不兼容. 1. 无参 //无参 所有浏览器都兼容 var dateTime = new Date(); 2.日期参数 //日期参数 格式1 var dateTime = new Date("2017-09-12"); a. IE > IE9-(不兼容) > IE

  • JS获得鼠标位置(兼容多浏览器ie,firefox)脚本之家修正版

    JS获得鼠标位置(兼容多浏览器ie,firefox)我们修正版 function mouseMove(ev) { ev= ev || window.event; var mousePos = mouseCoords(ev); //alert(ev.pageX); document.getElementById("xxx").value = mousePos.x; document.getElementById("yyy").value = mousePos.y; }

  • 浅谈js中startsWith 函数不能在任何浏览器兼容的问题

    在做js测试的时候用到了startsWith函数,但是他并不是每个浏览器都有的,所以我们一般要重写一下这个函数,具体的用法可以稍微总结一下 在有些浏览器中他是undefined 所以我们可以这样的处理一下. if (typeof String.prototype.startsWith != 'function') { String.prototype.startsWith = function (prefix){ return this.slice(0, prefix.length) === p

  • js获取鼠标位置杂谈附多浏览器兼容代码

    其实获得鼠标位置就是一句话的事情,但是要是不了解浏览器间的区别,整个过程就会让人很郁闷,区别在与: 1.IE下获得x和y轴的距离分别用event.x和event.y: FF下获得x和y轴的距离分别用event.pageX和event.pageY: 2.IE下用此方法获得的位置是不算滚动条滚过的位置的,即它只会算到浏览器边缘: FF则会算进滚过去的那些位置: (这个地方很让我崩溃,为这么点小区别我把所有用到的程序全部重写了一遍,囧死--) 解决1的办法,无非是判断一下浏览器,然后用什么方式: 解决

  • js+AJAX异步从优酷专辑中采集所有视频及信息

    http://www.jb51.net/article/22031.htm个人觉得不甚满意,因为VB.NET在.NET环境下执行采集,产生的网络连接与正则匹配消耗太大,而我最终的应用是在视频采集提交上,所以就考虑用JS的AJAX+正则表达式来完成这个目标. 以前一直没有系统地学习JS和正则,所以花费的时间比预想的要长,折腾了一个晚上,糊弄出了下面的代码.=..= 代码 复制代码 代码如下: <!-- 夜闻香原创,转载请保留此信息,万分感谢! 博客: http://clso.cnblogs.com

  • 如何创建ajax对象并兼容多个浏览器

    这篇文章主要介绍了如何创建ajax对象并兼容多个浏览器,需要的朋友可以参考下 <script> function createAjax(){ var request=false; //window对象中有XMLHttpRequest存在就是非IE,包括(IE7以上版本) if(window.XMLHttpRequest){ request=new XMLHttpRequest(); if(request.overrideMimeType){ request.overrideMimeType(&

  • 浅谈js的ajax的异步和同步请求的问题

    先来看以下代码: var flag=true; var index=0; $.ajax({ url: "http://www.jb51.net/", success: function(data){ flag=false; } }); while(flag){ index++; } alert(index); 请问最后alert的index的结果是多少? 可能有人会说0呗.实际上却没那么简单.大家可以自己试试看.可以看到最终程序进入了一个死循环!怎么会这样呢! 我们在看一段代码: va

随机推荐