2011-04-12 2 views
0

아마도이 바이올린을보고 이해하는 것이 가장 쉽습니다.자바 스크립트에서 하드 코딩 된 값을 사용하는 대신 cron을 사용하여 수행 할 수 있습니까?

http://jsfiddle.net/TdBdW/1/ - CSS 부족에 사과드립니다.

동적으로 생성 된 드롭 다운 및 텍스트 상자에는 하드 코드 된 값의 큰 목록이 있습니다. 나는이 데이터베이스를 데이터베이스에서 직접 가져 왔으면 좋겠지 만 쿼리가 실시간으로 사용하기에는 너무 오래 걸린다. 즉 사용자가 드롭 다운을 클릭하거나 자동 완성 상자에 입력하려고 할 때 .

대신에 나는 관련 검색어를 밤에 cron 작업을 사용하여 실행하고 싶지만 질문은 결과를 가져 와서 내 javascript 파일에 저장하는 방법입니다.

누구든지 구현 방법을 알고 있습니까?

도움을 주시면 대단히 감사하겠습니다.

마틴

+0

드롭 다운 목록이 작게 표시됩니다. 설계 또는 최적화 문제가있을 수 있습니다. 나는 자동 완성을하고 문제없이 수천 가지 항목을 드롭 다운 함 – grunk

답변

2

원하는 경로 ("cron job은 javascript에서 사용할 데이터를 만듭니다")를 얻는 가장 좋은 방법은 JSON을 사용하는 것입니다.

  1. 은)는 데이터를 반입하는 cron 작업을 만들고 b)는
  2. 파일을 포함하도록 HTML을 개정, 웹 서버에서 액세스 할 수있는 JSON 규칙을 사용하여 포맷 파일에 기록합니다 : 이것은 포함 cron 작업에 의해 생성되었습니다.

    var agentValues = [ 
         "excel", 
         "msword", 
         "ppt", 
    ]; 
    

    쉽게 정적 첫 번째와 마지막 줄이를 만들고, 단순히 쿼리에서 인용 된 값을 추가 할 수 있습니다 :

는 간단하게하기 위해 다음과 유사한 내용을 사용하여 자바 스크립트 파일을 만들 수 있습니다 사이.

for (var i = 0; i < agentValues.length; i++) { 
    $("<option>" + agentValues[i] + "</option>").appendTo($values); 
} 

위의 것 : 당신이 자동 완성 값을 채울 때

<script type="text/javascript" src="..."></script> 

는, 단순히이 배열을 통해 for 루프를 사용 : 당신은 다른 자바 스크립트처럼 HTML 문서에이 파일을로드 할 수 있습니다 당신의 목표를 달성하는 가장 기본적인 버전, 그리고 그것을 향상시킬 수 있습니다.기준 :

  1. 는 오히려
  2. 등 별도의 파일보다, 기존의 자바 스크립트에 데이터 값을 추가하는 많은 최상위 변수
  3. 을하지 않도록 네임 스페이스를 구조화
  4. 오류 검사 추가
+0

답장을 보내 주셔서 대단히 감사합니다. 몇 가지 질문을해도 괜찮습니까? 기본적으로 쿼리는 변경하려는 태그 (예 : SELECT DISTINCT FROM documenttags WHERE tag = 'agent'GROUP BY value')를 제외하고는 동일합니다. 모든 다른 태그에 대한 변수를 사용하여 루프에서 쿼리를 실행하는 것이 더 좋은지 생각하고 있습니까? 그런 다음 JSON으로 인코딩하는 방법도 궁금합니다. PHP 함수가 있음을 알았지 만 다음을 발견했습니다. http://www.thomasfrank.se/mysql_to_json.html – martincarlin87

+0

예, mysql 쿼리를 반복하면 좋습니다. 여전히 모든 것을 하나의 javascript 파일에 넣을 수 있습니다. 각 그룹마다 첫 번째 줄과 마지막 줄 (위와 같음) 만 다른 var 이름으로 지정하면됩니다. 값에 글자 만 포함될 것이라는 확신이 든다면 멋진 JSON 인코딩 루틴이 필요하지 않습니다. 값을 따옴표로 묶고 마지막에 쉼표를 추가하십시오 (JSON 배열에서 여러 값이 필요하기 때문입니다). 쉼표로 구분). JSON은 까다로울 수 있지만 자바 스크립트 파일의 값을 설정하기 위해 작성하는 자바 스크립트 만 사용할 수 있습니다. – odrm

0

아마도 자바 스크립트 파일이 정적 인 것은 원하지 않을 것입니다. HTML을 생성하는 것과 같은 방법으로 PHP 스크립트에서 동적으로 생성하지 않는 것이 어떻습니까? 그것이 더 쉬운 경우에 당신은 다만 분리 자산으로 그것을 적재하는 것과 반대로 당신의 html에있는 자바 스크립트를 다만 inline 할 수 있었다.

태그 목록에 대해 매번 db를 치는 것에 대해 걱정이된다면 주기적으로 업데이트되는 일부 전역 개체에 태그를 보관할 수 있습니다.

1

먼저 쿼리를 최적화 할 수 있습니까? cron 작업을 실행하는 경우 서버의 json 또는 xml 파일에 결과를 기록하고 XHR (일명 AJAX)을 사용하여 해당 파일을 가져올 수 있다고 가정합니다.

또는 cronned 쿼리의 결과를 포함하는 데이터베이스에서 테이블을 디자인/생성하고 해당 테이블에서 데이터를 가져올 수 있습니까?

관련 문제