尝试加载局部视图时 SetInterval 和 SetTimeout 不起作用
SetInterval and SetTimeout not working when trying to load a Partial View
我正在尝试使用 JQuery
在 ASP.Net MVC
应用程序中重新加载 PartialView
。
我的代码:
<div class="partial">
@Html.Action("GetRemainingSeats", "Layout")
</div>
<script src="@Url.Content("~/Scripts/jquery-1.10.2.min.js")"></script>
<script type="text/javascript">
setTimeout(
$(function () {
setInterval(function () { $('#partial').load('@Html.Action("GetRemainingSeats", "Layout")'); }, 5000)
}), 6000);
</script>
部分视图已正确加载,但紧随其后,它将再次执行操作,而无需等待 setTimeout
函数计时器结束。之后它将停止做任何事情。
编辑:
在 PartialView
里面有一个 table,上面有电影院的放映以及每场放映的剩余座位数。所以我希望它能更新几秒钟,这样员工就可以看到还有多少座位可供观看。
我正在使用超时和 setinterval
函数,因为在 pageload
上调用了操作。之后我希望它在开始间隔之前等待几秒钟
我真的不明白为什么你同时使用 timeout 和 setinterval 方法,因为这两种方法都是第一次使用,如果你想在 4 秒后刷新 div,请坚持使用 setInterval 方法,否则如果你想只刷新一次,使用setTimeout方法
var wait = setTimeout(
$(function () {
var s = setInterval(function () {
clearInterval(s); // you need to remove the interval if you want to run it once
$('#partial').load('/Layout/GetRemainingSeats');
}, 4000)
}), 6000);
此外,您需要更改
<script src="@Url.Content("~/Scripts/jquery-1.10.2.min.js")"></script>
至
<script src='@Url.Content("~/Scripts/jquery-1.10.2.min.js")'></script>
您的脚本正试图将 html 加载到一个不存在的元素中(您只有一个带有 class="partial"
的元素,而不是 id="partial"
。您还需要使用 @Url.Action()
,而不是 @Html.Action()
(这是调用子操作的助手 - 它不会生成 .load()
方法所期望的 url。您需要进行以下更改
html
<div id="partial"> // change this to specify the id attribute
@Html.Action("GetRemainingSeats", "Layout")
</div>
脚本
$(function () {
setInterval(function () {
$('#partial').load('@Url.Action("GetRemainingSeats", "Layout")'); }, 5000) // use @Url.Action()
}), 6000);
我正在尝试使用 JQuery
在 ASP.Net MVC
应用程序中重新加载 PartialView
。
我的代码:
<div class="partial">
@Html.Action("GetRemainingSeats", "Layout")
</div>
<script src="@Url.Content("~/Scripts/jquery-1.10.2.min.js")"></script>
<script type="text/javascript">
setTimeout(
$(function () {
setInterval(function () { $('#partial').load('@Html.Action("GetRemainingSeats", "Layout")'); }, 5000)
}), 6000);
</script>
部分视图已正确加载,但紧随其后,它将再次执行操作,而无需等待 setTimeout
函数计时器结束。之后它将停止做任何事情。
编辑:
在 PartialView
里面有一个 table,上面有电影院的放映以及每场放映的剩余座位数。所以我希望它能更新几秒钟,这样员工就可以看到还有多少座位可供观看。
我正在使用超时和 setinterval
函数,因为在 pageload
上调用了操作。之后我希望它在开始间隔之前等待几秒钟
我真的不明白为什么你同时使用 timeout 和 setinterval 方法,因为这两种方法都是第一次使用,如果你想在 4 秒后刷新 div,请坚持使用 setInterval 方法,否则如果你想只刷新一次,使用setTimeout方法
var wait = setTimeout(
$(function () {
var s = setInterval(function () {
clearInterval(s); // you need to remove the interval if you want to run it once
$('#partial').load('/Layout/GetRemainingSeats');
}, 4000)
}), 6000);
此外,您需要更改
<script src="@Url.Content("~/Scripts/jquery-1.10.2.min.js")"></script>
至
<script src='@Url.Content("~/Scripts/jquery-1.10.2.min.js")'></script>
您的脚本正试图将 html 加载到一个不存在的元素中(您只有一个带有 class="partial"
的元素,而不是 id="partial"
。您还需要使用 @Url.Action()
,而不是 @Html.Action()
(这是调用子操作的助手 - 它不会生成 .load()
方法所期望的 url。您需要进行以下更改
html
<div id="partial"> // change this to specify the id attribute
@Html.Action("GetRemainingSeats", "Layout")
</div>
脚本
$(function () {
setInterval(function () {
$('#partial').load('@Url.Action("GetRemainingSeats", "Layout")'); }, 5000) // use @Url.Action()
}), 6000);