소개폰갭 저장
내가 하루 종일했지만 내 폰갭의 aplication에서 일어나는 뭐죠 난 그냥 이해가 안 돼요.
내 휴대 전화에서 로컬 저장소를 사용하여 웹 페이지에서 검색된 뉴스 메시지를 저장하는 중입니다. 사용자가 콘텐츠를 오프라인에서 볼 수 있기를 원하기 때문에이 작업을 수행하고 있습니다.
앱이 온라인 상태 일 때 앱은 마지막 업데이트 날짜를 웹 사이트에 전송하기 만하면 웹 사이트는 변경된 레코드 만 다시 전송하고 앱은이를 로컬 db에 다시 저장합니다.
이 모두는 처음으로 데이터를로드 할 때 꽤 잘 작동합니다. 나는 매우 처음으로 응용 프로그램을 시작하면
문제
, 그것은 웹 사이트에서 사용할 수있는 모든 레코드 데이터베이스를 채울 필요가있다. (201 rows) 그러나 39 개 이상의 메시지를로드하려고하면 정의되지 않은 SQL 오류가 발생합니다.
그러나 39 개의 결과 만 전송되도록 PHP 스크립트를 변경할 수 있습니다. 앱이 처음으로로드 된 후 스크립트를 다시 변경하여 모든 레코드를 전송할 수 있으며 완벽하게 작동합니다.
내 응용 프로그램을 시작할 때마다 문제가 더욱 복잡해지기 때문에 모든 테이블이 삭제되고 다시 작성됩니다 (물론 개발 목적으로 만 사용되며 드롭은 최종 버전에 포함되지 않습니다). 응용 프로그램을 다시 시작하면 아무런 문제없이 201 개의 레코드가로드됩니다.
다시 문제를 재현하려면 응용 프로그램을 완전히 제거한 다음 다시 설치해야합니다. 시작시
var q = 'INSERT OR REPLACE INTO NIEUWS (id, title, introtext, catid) VALUES (?, ?, ?, ?)';
var len = contents.length;
for (var i=0; i<len; i++){
tx.executeSql(q, [contents[i].id, contents[i].title, contents[i].introtext, contents[i].catid]);
}
코드 : 결과를 저장하기위한
코드
코드 내가이기 때문에
tx.executeSql('DROP TABLE IF EXISTS NIEUWS');
tx.executeSql('CREATE TABLE IF NOT EXISTS NIEUWS (id PRIMARY KEY, title TEXT, introtext TEXT, catid INTEGER)');
난 정말이 문제는 몇 가지로 의미가 희망 지금 당장 완전히 잃어 버렸어.
미리 감사드립니다.
편집 1 ID와 제목 만 저장하려고했는데 아무 문제없이 작동합니다. 2
var q = 'INSERT OR REPLACE INTO NIEUWS (id, title) VALUES (?, ?)';
var len = contents.length;
for (var i=0; i<len; i++){
tx.executeSql(q, [contents[i].id, contents[i].title]);
}
편집 콜백을 기다리는 코드를 다시 작성, 같은 오류가 여전히 존재합니다.
function HandleNewsQuery(tx){
var q = 'INSERT OR REPLACE INTO NIEUWS (id, title, introtext, catid) VALUES (?, ?, ?, ?)';
if(c < contents.length){
tx.executeSql(q, [contents[c].id, contents[c].title, contents[c].introtext, contents[c].catid], HandleNewsQuery, errorCB);
c++;
}
}
가능하게 관련이 : HTTP : http://stackoverflow.com/questions/4825455/web-sql-database-javascript-loop – pawel