2011-02-03 5 views
1

웹 사이트 개발을 위해 레일즈에 루비를 사용하고 있습니다. 내 웹 사이트를 오프라인에서 사용할 수있게하고 싶습니다. 웹 SQL 데이터베이스를 사용하고 있습니다. 온라인 및 오프라인 데이터베이스를 어떻게 동기화 할 수 있는지 알고 싶습니다. 오프라인 데이터베이스는 자바 스크립트에 의해 생성됩니다. 이것들은 제가 시도한 몇 가지 사항입니다.웹 sql 데이터베이스를 동기화하는 방법

@contacts = Contact.order("contacts.position ASC") 

내가보기 파일에 자바 스크립트에서이 개체에 액세스하려고를 같이

<script type="text/javascript"> 

var js_obj = <%= @contacts.to_json %>; 

</script> 
아래와 같이 내가 컨트롤러 루비 객체에 데이터를 복용하고있는 데이터베이스의 내용을 표시하려면

올바른 방법인가요? 내가 js_obj 변수

+0

참고로 W3C는 WebSQL 프로젝트를 포기했습니다. http://www.w3.org/TR/webdatabase/#status-of-this-document – jemminger

답변

0

의 데이터를 볼 수 있습니다 얼마나 많은 브라우저가 나는 인라인 스크립트를 싫어

0

(등 IE9, 크롬,)를 구현되기 때문에 나는 definitley뿐만 아니라 색인화에 대한 대체있을 것입니다. 즉, 오프라인 데이터베이스를 사용하는 경우 .to_json을 반환하는 메서드로 컨트롤러에 대한 ajax 요청은 자체적으로 실행 가능하지 않습니다. 자바 스크립트 변수를 사용하지 않고 현재 오프라인 데이터베이스에 대해 가장 잘 지원되는 표준이므로 현재 사용되지 않는 웹 SQL 데이터베이스를 사용하고 있다고 가정하고 스크립트에서 이와 같은 것을 사용합니다 (불쌍한 SQL을 변명하고 계속 사용하십시오). 진행중인 일을 기억하십시오). 지금까지 코드는 작동하지 않지만 아이디어는 건전하다고 생각합니다.

http://jsfiddle.net/Nevraeka/hvT6u/5/

0

데이터베이스 독립적 인 추상화와 자바 스크립트 객체 데이터베이스 매퍼 프로젝트라는 persistence.js (persistencejs.org)가있다. 이 방법으로 앱을 WebSQL 데이터베이스로 제한 할 필요가 없으며, 예를 들어 Local Storage의 사용을 (같은 코드로) 지원할 수도 있습니다.

또한 원격 데이터베이스를 서버의 것과 동기화하는 persistence.sync이라는 플러그인이 있습니다. 그들은 예제 백엔드를 가지고 있지만 node.js 용으로 작성되었습니다. 그러나 레일즈의 지시에 따라 레일즈를 만들 수 있습니다. Rails 서버 측은 this과 같아야합니다. 이 라이브러리를 사용하기로 결정한 경우

또한, 당신은 문서에 언급 된 제한을 읽어야 할 사람 :

  • 동기화 라이브러리는 당 개체 단위에 동기화합니다. 따라서 충돌이 해결 될 필요가 도입 될 수있다, 속성별로 정확한 변경 사항을 유지하지 않습니다
  • 그것은 대다
  • 오류 처리는
  • 삭제를 구현되지
  • 관계없는 동기화되지 않습니다 지원되지만 어쩌면 "삭제 된"플래그를 사용하여이 문제를 해결할 수 있습니다.
관련 문제