繁体   English   中英

在 asp.net 内核中使用 javascript/jquery 刷新 razor 页面而不重新加载

[英]Refresh razor page without reload using javascript/ jquery in asp.net core

我有一个输入和脚本来在我的页面中重新加载表格。 在输入中,如果我插入 1000 我想每秒重新加载页面,而不单击任何按钮。

这是我尝试过的:

<input id="txtRefresh" />

<script>
    document.redy(function () {
        $('tblRefresh').load();
        setInterval(function () {
            $('#tblRefresh').load();
        }, 'txtRefresh');
    });
</script>

它的cshtml razor页面。

我想要做的是在input中插入秒的值并根据插入的值刷新页面,而不提交任何数据。

是否有可能做到这一点? 有什么建议么?

提前致谢!


更新

我插入了这个脚本:

<script>
    document.ready(function () {
        $('#refreshDIV').load('url/url/url');
        setInterval(function () {
            $('#refreshDIV').load('url/url/url');
        }, $('#txtRefresh').val());
    });
</script>

但它给了我错误!

refreshDIV是我要刷新的 div

txtRefresh是我插入秒的输入

你可以试试这个:

$(document).ready(function(){
     var timeout = $("#txtRefresh").val();
     setTimeout(timeout, function() { location.href=""; });
});

但是每次您重新加载页面时,您都会丢失输入。 您可以像这样通过查询字符串发送它:

location.href="?timeout="+timeout

并填充输入服务器端

这只是一个字符串:

'txtRefresh'

如果您想获取该元素的值,则更像是这样:

$('#txtRefresh').val()

您在document.ready您的第一个#tblRefresh选择器中也有错字(缺少# ),并且您没有为 .load .load()提供要加载的 URL 您似乎都在尝试这样做:

$(document).ready(function () {
    $('#tblRefresh').load('/some/url');
    setInterval(function () {
        $('#tblRefresh').load('/some/url');
    }, $('#txtRefresh').val());
});

有几点需要注意:

  1. /some/url值当然是此示例代码中的占位符。 无论您想在应用程序中使用什么 URL 都取决于您。

  2. 调用.load()会将 URL 的整个响应放入目标元素中。 如果您只想要该响应的一个子集,则可以将选择器添加到.load() 例如:

    $('#tblRefresh').load('/some/url #someElement');

这将告诉.load()/some/url中获取所有内容,然后仅从 select 中获取#someElement的内容以放置在#tblRefresh中。 由于 URL 中的所有内容仍在下载中,因此性能可能仍然很慢。 为了提高性能或更好地控制数据,请考虑从服务器返回 JSON 数据并使用.ajax()获取该数据,而不是使用.load()重新加载所有 HTML(仅当数据发生更改时)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM