首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >刷新部分页面(div)

刷新部分页面(div)
EN

Stack Overflow用户
提问于 2013-07-27 00:35:51
回答 5查看 517.3K关注 0票数 99

我有一个基本的html文件,这是附加到一个java程序。每当刷新页面时,此java程序都会更新部分HTML文件的内容。我只想在每隔一段时间后刷新页面的那部分。我可以将想要刷新的零件放在div中,但我不确定如何只刷新div的内容。任何帮助都将不胜感激。谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-07-27 00:38:32

使用Ajax来实现这一点。

构建一个函数,该函数将通过ajax获取当前页面,但不是整个页面,而只是从服务器获取相关的div。然后,数据将(同样通过jQuery)放入同一个div中,并用新内容替换旧内容。

相关函数:

http://api.jquery.com/load/

例如:

代码语言:javascript
复制
$('#thisdiv').load(document.URL +  ' #thisdiv');

注意,加载会自动替换内容。请确保在id选择符之前包含一个空格。

票数 127
EN

Stack Overflow用户

发布于 2013-07-27 00:49:56

假设您的html文件中有两个div。

代码语言:javascript
复制
<div id="div1">some text</div>
<div id="div2">some other text</div>

java程序本身不能更新html文件的内容,因为html与客户端相关,同时java与后端相关。

但是,您可以在服务器(后端)和客户端之间进行通信。

我们正在讨论的是AJAX,你可以使用JavaScript来实现,我推荐使用jQuery,这是一个通用的JavaScript库。

假设您希望每隔一段时间刷新一次页面,那么您可以使用interval函数每隔x次重复一次相同的操作。

代码语言:javascript
复制
setInterval(function()
{
    alert("hi");
}, 30000);

你也可以这样做:

代码语言:javascript
复制
setTimeout(foo, 30000);

这里的foo是一个函数。

您可以执行AJAX请求而不是警告(“hi”),这将向服务器发送一个请求并接收一些信息(例如新文本),您可以使用这些信息将这些信息加载到div中。

经典的AJAX看起来像这样:

代码语言:javascript
复制
var fetch = true;
var url = 'someurl.java';
$.ajax(
{
    // Post the variable fetch to url.
    type : 'post',
    url : url,
    dataType : 'json', // expected returned data format.
    data : 
    {
        'fetch' : fetch // You might want to indicate what you're requesting.
    },
    success : function(data)
    {
        // This happens AFTER the backend has returned an JSON array (or other object type)
        var res1, res2;

        for(var i = 0; i < data.length; i++)
        {
            // Parse through the JSON array which was returned.
            // A proper error handling should be added here (check if
            // everything went successful or not)

            res1 = data[i].res1;
            res2 = data[i].res2;

            // Do something with the returned data
            $('#div1').html(res1);
        }
    },
    complete : function(data)
    {
        // do something, not critical.
    }
});

后端能够接收POST的数据并且能够返回信息的数据对象,例如(并且非常可取的) JSON,有很多教程可以教你如何做到这一点,Google的GSON是我之前用过的,你可以看看它。

我不是Java POST接收和JSON返回的专业人员,所以我不会给你举这样的例子,但我希望这是一个很好的开始。

票数 18
EN

Stack Overflow用户

发布于 2013-07-27 00:36:52

您需要在客户端执行此操作,例如使用jQuery。

假设您希望将HTML检索到ID为mydiv的div中

代码语言:javascript
复制
<h1>My page</h1>
<div id="mydiv">
    <h2>This div is updated</h2>
</div>

您可以使用jQuery更新页面的这一部分,如下所示:

代码语言:javascript
复制
$.get('/api/mydiv', function(data) {
  $('#mydiv').html(data);
});

在服务器端,您需要为进入/api/mydiv的请求实现处理程序,并返回进入mydiv的HTML片段。

请看我为您制作的这个文件,其中有一个使用JSON和jQuery响应数据的有趣示例:http://jsfiddle.net/t35F9/1/

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17886578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档