2010-12-15 3 views
1

테이블이 HTML5 로컬 데이터베이스의 데이터베이스 내에 존재하는지 확인하는 방법이 있습니까?HTML5 데이터베이스가 존재하는 테이블을 확인 하시겠습니까?

9 개의 테이블을 만들어야하는데 문서가 준비되면이 메서드가 실행됩니다. 페이지가 시작될 때마다 동일한 메소드를 호출하기 때문에 메모리를 낭비하지 않습니까? 나는 그것을 모바일 장치 (iPhone) 용으로 사용한다.

try{ 
       if(!window.openDatabase){ 
        alert('DB not supported.'); 
       }else{ 
        var shortName = 'abc'; 
        var version = '1.0'; 
        var displayName = 'ABC'; 
        var maxSize = 3145728; 
        var tableName = ['business', 'politic', 'firstread', 'commentary','features', 'insiderasia', 'management', 'media']; 
        db = openDatabase(shortName, version, displayName, maxSize); 

        $.each(tableName, function(theCount, value){ 
         db.transaction(
          function(transaction){ 
           transaction.executeSql('CREATE TABLE IF NOT EXISTS '+ value +' (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, link TEXT NOT NULL, title TEXT NOT NULL, author TEXT NOT NULL, pubdate TEXT NOT NULL, imgLink TEXT NULL, desc TEXT NOT NULL, day TEXT NOT NULL);'); 
         }); 
        }); 
       } 
      }catch(e){ 
       if(e == INVALID_STATE_ERR){ 
        console.log('invalid database version.'); 
       }else{ 
        console.log('unknown error ' + e + '.'); 
       } 
       return; 
      } 
+0

당신은 데이터베이스의 필드 안에 마크 업이 말은 당신이 어떠했는지를 확인하려면 이십 기가 바이트 테이블을 포함하지 않습니까? – yoda

+0

필드 내부의 마크 업은 무엇입니까? – arkchong

답변

2

당신이 필요한 경우 :

코드인가? 당신은 당신이 이미 데이터베이스에 존재하는 테이블을 다시 만들 수 있다는 것을 걱정하는 경우,이 SQL 쿼리와 테이블을 생성해야합니다

CREATE TABLE IF NOT EXISTS table_name 
+0

나는이 'CREATE TABLE IF NOT EXISTS'를 사용하지만, 9 개의 테이블을 생성해야하며이 방법은 문서가 준비되면 실행될 것이다. 페이지가 시작될 때마다 동일한 메소드를 호출하기 때문에 메모리를 낭비하지 않습니까? 나는 그것을 모바일 장치 (iPhone) 용으로 사용한다. – arkchong

+0

좋은 기사가 도움이 될 수 있습니다. http://blog.maxaller.name/2010/03/html5-web-sql-database-intro-to-versioning-and-migrations/ 또는 다음과 같이 localstorage에 플래그를 저장할 수 있습니다. 먼저 모든 테이블을 만들고 문서를 준비하고 준비하기 전에 먼저이 플래그를 확인하십시오. 그러나 사용자가 localStorage를 지우고 데이터베이스를 저장할 수 있으므로 권장하지 않습니다. –

+0

나는 localStorage를 사용하는 것이 좋은 생각이라고 생각했지만, 사용자가 말했듯이 사용자는 localStorage를 지울 수 있습니다. 문서에서 단 하나의 테이블 만 만들면 어떻게됩니까? 사용자가 다른 '페이지'로 이동할 때만 다른 테이블이 생성됩니까? 9 테이블을 만들면 더 좋을까요? – arkchong

관련 문제