2015-01-20 1 views
2

자주 새 행을 추가하는 파일이 있습니다. 해당 로컬 파일의 변경 내용을 검색하고 파일에 추가 된 새 콘텐츠를 인쇄 할 수있는 javascript를 사용하여 브라우저에서 실행중인 웹 응용 프로그램을 만들고 싶습니다.브라우저에서 Javascript를 사용하여 새 행에 대한 로컬 파일을 계속 꼬리로 장식하십시오.

내 솔루션에는 setInterval과 새로운 HTML5 File API를 사용하여 javascript 폴링을 사용하는 것이 포함됩니다. 입력 파일 필드를 사용하여 파일을로드 한 다음 파일 크기를 폴링합니다. 크기가 변경 될 때마다 (내 경우에는 증가 함) 이는 새로운 내용이 파일에 추가되었음을 나타냅니다. 그런 다음 Blob을 사용하여 파일을 슬라이스하고 오래된 파일 크기를 시작으로 사용하고 새 파일 크기를 마지막으로 사용하여 추가 된 내용 만 가져옵니다.

일반적으로 평균 간격 (나는 500ms를 사용하고 있습니다.)이 좋지만이 솔루션이 더 좋은 해결책이라면 궁금합니다.

<head> 
    <title>habitat parser log viewer</title> 
    <script type="text/javascript" src="jquery.min.js"></script> 
    <script type="text/javascript" src="logtail.js"></script> 
    <link href="logtail.css" rel="stylesheet" type="text/css"> 
</head> 

<body> 
    <div id="header"> 
     js-logtail. 
     <a href="./">Reversed</a> or 
     <a href="./?noreverse">chronological</a> view. 
     <a id="pause" href='#'>Pause</a>. 
    </div> 
    <pre id="data">Loading...</pre> 
</body> 

당신은 심지어 (lighthttpd, 아파치로), 웹 서버를 서버 측 부분이 필요하지 않습니다 내부적으로 HTTP 범위 헤더와 함께이 문제를 처리합니다

+0

저에게 좋은 해결책 인 것 같습니다. – Scimonster

답변

0

당신은 꼬리 -f 같은 파일을 다음과 같은 사항에 대해 js-logtail을 사용할 수 있습니다 .

+1

이것은 로컬 파일이 아닌 원격 파일 용입니다. –

+0

사용 가능한 웹 서버가있는 경우 로컬 파일에도 사용할 수있는 좀 더 일반적인 솔루션입니다. – WeSee

+1

그게 중요한 점입니다. 그러나 모든 클라이언트가 웹 서버를 방문하여 특정 파일을 제공 할 가능성은 거의 없습니다. 확인 만하면 LogTail이 서버의 tail 파일에 설치되어있는 것 같습니다. 클라이언트가 아닌가요? 따라서 질문에 제안 된대로 HTML5 File API가 아닌 XHR 요청을 사용합니다. –