2014-02-06 137 views
0

大家好我是新来的,这是我的第一个问题。Jquery .load()不适用于IE

我在IE 11

一些JS代码的问题是这个问题:

<script type="text/javascript"> 
var auto_refresh = setInterval(
function() 
{ 
$('#jqueryFuction').load('ping?sessioneWeb=${requestScope.sessioneWeb}').fadeIn("slow"); 
}, 1000); // refresh every 10000 milliseconds 

</script> 
<div id="jqueryFuction"> 

</div> 

这个代码向我的服务器发送请求控制如果有一些JS代码推在客户端。

在我的服务器(我使用Spring MVC)我写的代码:

@RequestMapping(value = "/ping") 
    @ResponseBody public String ping(HttpServletRequest request, HttpServletResponse response,@ModelAttribute("sessioneWeb")String sessioneWeb,@ModelAttribute("item")ClientWom3Form item) 
    { 
     UserContainer userContainer = (UserContainer) request.getSession().getAttribute(sessioneWeb); 

     if(userContainer != null && Util.isNotNull(userContainer.getFuctionReadyJQ())) 
     { 
      String valore = "<script type=\"text/javascript\">"+userContainer.getFuctionReadyJQ()+"</script>"; 
      userContainer.setFuctionReadyJQ(""); 
      return valore; 
     } 
     else 
      return ""; 
    } 

与此代码我可以在我的

验证码推JS代码在Chrome和FF工作正常,但在IE中没有。我无法到达服务器,我不知道为什么。

我看到浏览器每秒传递到加载,但它没有到达服务器,并且控制台不显示任何错误。

使用jQuery-1.10.2.min.js

任何人都可以帮助我吗?

感谢所有关注和帮助

+1

首先要测试的是从间隔中删除您的ajax请求,看看IE是否处理它。无论如何,每秒做一个阿贾克斯调用是错误的 –

回答

3

IE是著名的像这样的缓存请求。我建议你为URL添加一个唯一的参数来缓存该缓存。

<script type="text/javascript"> 
var auto_refresh = setInterval(function() { 
    var now = new Date().getTime(); 
    $('#jqueryFuction').load('ping?sessioneWeb=${requestScope.sessioneWeb}&timestamp=' + now).fadeIn("slow"); 
}, 1000); // refresh every 10000 milliseconds 

</script> 

而且,除非#jqueryFuction设置为隐藏你做​​前fadeIn()将无法​​正常工作。

我也会争辩说,你真的不想每秒都要做一次ajax调用。一些Ajax电话会花费超过一秒钟的时间才能处理,如果你有很多观众,这会让你的服务器瘫痪。考虑更长的时间间隔或更有效的方式来让服务器告诉你什么时候有新东西(比如websockets)。

+0

我建议,而不是使用超时重新设置每个阿贾克斯的新超时完成:) –

+0

非常感谢!这个解决方案很好!并再次感谢你教我一些我没有kwon的东西,真的很感谢你。我试图实现一个websocket来解决我的问题 – Littlered

+0

@Littlered - 因为它看起来像你可能是StackOverflow的新手,你知道吗,如果你得到一个解决你的问题的答案,你应该点击答案左边的复选标记。这向其他读者指出,这是解决您的问题的答案。它还可以为您和提供答案的人提供一些声望点,这些声望点可以为您在StackOverflow上获得更多权限。 – jfriend00