如何刷新页面和覆盖内容?

时间:2015-04-06 14:09:19

标签: javascript html ibm-mobilefirst

使用HTTP适配器在IBM Worklight上进行测试。

我的问题是:如何刷新页面并用新的列表项覆盖旧的?或清空列表项并添加/追加新列表项?

  1. 没有页面刷新概念,从下拉列表中,如果选择了sport,则会附加cnn体育新闻,然后如果选择了技术,则在最后一个列表标记结束之后附加cnn技术新闻,这是在体育新闻之后。

  2. 使用页面刷新概念(window.location.reload();)。通过尝试js代码,页面刷新但无法附加rss feed项。

  3. 我希望一次显示一个新闻类别,之前的列表将被覆盖。

    HTML

    <!DOCTYPE HTML>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>RSSnew</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
        <link rel="shortcut icon" href="images/favicon.png">
        <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
        <link rel="stylesheet" href="css/RSSnew.css">
        <script>window.$ = window.jQuery = WLJQ;</script>
    </head>
    <body id="content" style="display: none;">
        <!--application UI goes here-->
            <select size="2" id="cc">
            <option selected>select categories</option>
            <option value="Sport">Sport</option>
            <option value="Technology">Technology</option>
        </select><br>
        <input type = "button" onclick="search()" value="Search">//onclick="reload(),search()"
    
        <ul id="news"></ul>
        <script src="js/initOptions.js"></script>
        <script src="js/RSSnew.js"></script>
        <script src="js/messages.js"></script>
    </body>
    </html>
    

    JS

    function search()
    {
        window.location.reload();
        var a=$("#cc").val();
        alert(a);
         var invocationData={
    
                 adapter:'cnn',
                 procedure:'getStories',
                 parameters:[a]
         };
    
         var options={
                 onSuccess:su,
                 onFailure:fa
         };
         WL.Client.invokeProcedure(invocationData, options);
    }
    
    function su(result)
    {
    
        alert("success");
        var a=result.invocationResult.rss.channel.item.length;
        var i;
    
        for(i=0;i<=a;i++)
            {
                var b=result.invocationResult.rss.channel.item[i].title;
                var c=result.invocationResult.rss.channel.item[i].description;
    
    
                var d=$("#news");
    
                var e=$('<li><b><u>'+b+'</u></b></li>');
                var f=$('<li>').html(c);
                d.append(e,f);
    
            }
    }
    
    function fa()
    {
        alert("failure");
    }
    
    function reload() {
    
        window.location.reload();
        //$("#news").remove();
    //  search();
    
    }
    

2 个答案:

答案 0 :(得分:0)

而不是使用window.location.reload();只是清空#news UL元素的内容。

search()函数中,将重新加载行替换为ul.innerHTML = '';。 应该工作。

答案 1 :(得分:0)

如果你使用jQuery setInterval 函数方法,你将刷新&amp;覆盖您的数据而不重新加载页面。

var doYourStuff = function () {
  // Your functionality 
};
setInterval(doYourStuff, 1000);