2014-07-14 5 views
1

현재 Synology NAS에서 실행중인 인트라넷 사이트를 코딩 중입니다. 인트라넷 페이지 (자바 스크립트를 통해)는 "www"폴더가 아닌 NAS의 폴더에 액세스 할 수 없기 때문에 표시해야하는 데이터가 "www"폴더 외부에 있으므로 Perl 스크립트를 사용하여 서버 쪽에서이 작업을 수행해야했습니다. NASPerl에서 HTML 페이지 만들기 incl. Javascript : 자바 스크립트 변수 새로 고침

perl 스크립트는 dygraphs를 통해 차트를 그려야하는 자바 스크립트 코드를 포함하여 전체 HTML 페이지를 작성합니다. 펄 스크립트가 수행하는 가장 중요한 것은 공정 .csv 파일과 dygraphs 라이브러리 (dygraphs.com) 차트를 표시 할 필요 같은 일련의 변수가

var $chartdata = [["2014/07/06 12:05", 15], ["2014/07/06 12:06"], 15.5, ...]; 

쓰기입니다. 따라서 나는 "script"태그 안에 동적으로 JavaScript 라인을 작성하고있다. perl 변수가 URL (script.pl?day=07 & 월 = 06 & 년 = 2014)에 전달되면이 변수는 다르게 작성됩니다.

이 모든 것이 iPad에 표시되며 정상적으로 작동합니다.

이제 스 와이프 기능을 구현했으며 표시된 날짜 전후의 데이터로 차트를 새로 고침하고 싶습니다. 왼쪽 또는 오른쪽으로 스 와이프하면됩니다. 스 와이프 기능도 작동합니다.

내 문제는 전체 페이지를 새로 고칠 필요없이 javascript 변수를 새로 고치거나 다시 작성하는 방법입니다. URL 변수에 새 데이터가있는 전체 perl 스크립트를 실행하면 전체 HTML 페이지가 다시 작성됩니다. 그러나 차트 (차트의 데이터)를 새로 고치고 싶습니다.

이 작업을 수행하는 방법에 대한 아이디어가 있으십니까?

많은 감사와 안부, DMY는

답변

0

당신은 AJAX를 사용해야합니다. 아마도 가장 쉬운 방법은 서버에서 펄 스크립트를 실행하는 엔드 포인트를 설정하고 그래프 기능이 이해할 수있는 JSON을 출력하는 것이다. 페이지가로드되면 기본 그래프를 제공하는 요청을하십시오. 사용자가 스 와이프 할 때 해당 그래프를 제공하는 새로운 요청을하십시오.

jquery를 사용하는 경우 this function을 사용할 수 있습니다.

+0

고맙습니다. 패트릭. 나는 perl-script로부터 html-writing을 삭제하려고 시도하고, 당신이 말한 방식으로 데이터를 가져 오려고 시도 할 것이다. 비록 이것이 정확하게 어떻게하는지 잘 모르겠다. – LiquidForce

+0

필자는 perl을 작성하지 않으므로이 언어가 어떻게 생겼는지 모르겠다. 기본적으로 다음과 같은 문자열을 작성하려고한다. "{ ''response [: '2014/07/06 12:05 ', 15], ['2014/07/06 12:06 '], 15.5, ...]} "jquery가 자바 스크립트 데이터 구조로 압축을 풀도록합니다. 또한 도움이된다면이 답변을 upvote 및/또는 수락하십시오. –

+0

나는 문제없이이 문자열을 perl로 빌드 할 수있다. jquery 코드 (풀기)가 어떻게 보이는지 확실하지 않다. 내가 할 수만 있다면 당신을 업 그레 이드 하겠지만, "당신은 15 평판이 필요합니다"는 나를 (아직) 허용하지 않습니다. – LiquidForce