gpt4 book ai didi

javascript - Jquery .load() 不适用于 IE

转载 作者:行者123 更新时间:2023-11-28 20:01:25 24 4
gpt4 key购买 nike

大家好,我是新来的,这是我的第一个问题。

我在 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

谁能帮帮我吗?

感谢大家的关注和帮助

最佳答案

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>

此外,除非在执行 .load() 之前将 #jqueryFuction 设置为隐藏,否则 fadeIn() 将不起作用。

我还认为你真的不想每秒都进行 ajax 调用。一些 ajax 调用甚至需要一秒钟以上的时间才能处理,如果您有很多观众,这将使您的服务器瘫痪。考虑更长的时间间隔或更有效的方法,让服务器在有新内容(例如 Websocket)时通知您。

关于javascript - Jquery .load() 不适用于 IE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21608244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com