2014-03-25 98 views
-2

我在c#應用程序中每隔幾分鐘就會用一個不同的數據更新一個文本文件。我如何刷新我的網站?

在文本文件中有例如第一次:你好世界 一分鐘的文本文件後包含:大家

現在在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中進行刷新?

+0

你是要自動刷新或手動(用戶點擊刷新)? –

+0

自動。例如,該網站將每分鐘刷新一次。刷新或稱之爲更新。由於即時更新每分鐘的文本文件,我希望網站每分鐘讀取更新的文件。它現在的方式是不斷顯示舊的文件內容。 –

+1

可能重複[如何重新加載頁面每5秒?](http://stackoverflow.com/questions/2787679/how-to-reload-page-every-5-second) – Shaharyar

回答

3

嘗試這樣

無需刷新頁面只是刷新,將獲得從文本文件

$(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 
     }); 
    }); 
} 
+0

嘗試了它所做的是在文件內容中添加每秒或更少的新行。 –

+0

你可以看到我的網站在這裏:http://newsxpressmedia.com/ –

+0

Sridhar它的更新工作確實顯示新的更新的內容,但在上面的一個新的HTML窗口中,我一直看到舊的內容也滾動。每60秒它不會銷燬舊內容,只需添加一個新的滾動jquery即可。所以,我首先看到以下內容:例如,你好。在60秒之後,我看到:變好了。兩者都在滾動。我希望更新後的內容將取代舊內容。在您的解決方案中,它將在舊版本中添加更新後的文本。 –

0

最新信息的功能。如果你想刷新頁面從JavaScript每分鐘然後

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

會做伎倆。但是,使用這種方法會每隔一分鐘重新加載一次文件,即使該文件沒有真正更改過。

你可以看看SignalR觸發從服務器端的一切。你要做的是創建一個集線器,一旦這個文件的新版本上傳完畢,它將發送一個通知給所有訂閱的客戶(其中一個將是你的網站)。這將確保僅當文件實際更改時才更新頁面。

你可以閱讀更多關於SignalR here

0

使用Javascript:

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