我如何刷新我的网站

本文关键字:我的 网站 刷新 何刷新 | 更新日期: 2023-09-27 17:52:50

我有一个c#应用程序,每隔几分钟更新一个文本文件,其中包含不同的数据。

例如第一次在文本文件中有:Hello world一分钟后,文本文件包含:嗨,大家

现在在c#应用程序中,我正在上传文本文件,一旦它被更改。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Net;
namespace ScrollLabelTest
{
    class FtpFileUploader
    {
        static string ftpurl = "ftp://ftp.test.com/files/theme/";
        static string filename = @"c:'temp'test.txt";
        static string ftpusername = "un";
        static string ftppassword = "ps";
        static string value;
        public static void test()
        {
            try
            {
                FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(
                ftpurl + "/" + Path.GetFileName(filename));
                request.Method = WebRequestMethods.Ftp.UploadFile;

                request.Credentials = new NetworkCredential(ftpusername, ftppassword);

                StreamReader sourceStream = new StreamReader(@"c:'temp'test.txt");
                byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
                sourceStream.Close();
                request.ContentLength = fileContents.Length;
                Stream requestStream = request.GetRequestStream();
                requestStream.Write(fileContents, 0, fileContents.Length);
                requestStream.Close();
                FtpWebResponse response = (FtpWebResponse)request.GetResponse();
                Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription);
                response.Close();
            }
            catch(Exception err)
            {
                string t = err.ToString();
            }
        }
    }
}

我看到我的硬盘上的文本文件的内容改变了,也上传文件到我的网站ftp后,我看到那里更新的文本文件。

现在在我的网站,我使用javascript/ajax读取上传的文本文件:

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="http://newsxpressmedia.com/files/theme/jquery.newsTicker.js"></script>
<div id="oneliner">
    <div class="header"> Breaking News </div>
    <ul class="newsticker">
<script>
$(function() {
    var file = "http://newsxpressmedia.com/files/theme/test.txt";
    $.get(file, function (txt) {
        //var lines = txt.responseText.split("'n");
        var lines = txt.split("'n");
        $ul = $('<ul class="newsticker" />');
        for (var i = 0, len = lines.length; i < len; i++) {
            //save(lines[i]); // not sure what this does
            $ul.append('<li>' + lines[i] + '</li>');
        }
        //$ul.appendTo('body').newsTicker({
        $ul.appendTo('div.wcustomhtml').newsTicker({
            row_height: 48,
            max_rows: 2,
            speed: 6000,
            direction: 'up',
            duration: 1000,
            autostart: 1,
            pauseOnHover: 1
        });
    });
});
</script>
</ul>
</div>

问题是一旦我在c#中的应用程序更新了文件,并将其上传到ftp我需要在我的浏览器中,例如chrome,使手动刷新,如果不是,它将继续显示旧的文本文件内容,而不是更新。

我怎么能使刷新也许在javascript ?

我如何刷新我的网站

试一下

无需刷新页面,只需刷新从文本文件中获取最新信息的函数

$(function() {
    news();
    setInterval(function(){
      news()
    },60000)  // it will call every 1 min you can change it
});
function news(){
   $('body').find('.newsticker').remove();//It will clear old data if its present 
   var file = "http://newsxpressmedia.com/files/theme/test.txt";
    $.get(file, function (txt) {
        //var lines = txt.responseText.split("'n");
        var lines = txt.split("'n");
        $ul = $('<ul class="newsticker" />');
        for (var i = 0, len = lines.length; i < len; i++) {
            //save(lines[i]); // not sure what this does
            $ul.append('<li>' + lines[i] + '</li>'); //here 
        }
        //$ul.appendTo('body').newsTicker({
        $ul.appendTo('div.wcustomhtml').newsTicker({
            row_height: 48,
            max_rows: 2,
            speed: 6000,
            direction: 'up',
            duration: 1000,
            autostart: 1,
            pauseOnHover: 1
        });
    });
}

如果你想用JavaScript每分钟刷新一次页面,那么

setInterval(function () {
    //retrieve file from server and update html with new contents
}, 60000)

就可以了。但是,使用这种方法将每分钟重新加载一次文件,即使文件实际上没有被更改。

您可以查看SignalR以从服务器端触发所有内容。你要做的是创建一个中心,一旦新版本的文件被上传,将发送通知给所有订阅的客户端(其中一个将是你的网站)。这将确保仅在文件实际更改时才更新页面。

你可以在这里阅读更多关于SignalR的信息。

只需使用asp:timer控件并将您的内容放在UpdatePanel中,就是这样。

你也可以看到定时器的例子,并根据你的时间要求设置时间。

http://msdn.microsoft.com/en-us/library/bb398865 (v = vs.100) . aspx

使用javascript:

setTimeout(function() {
    location.reload();
}, 300000);