저장된 개체를 유지 관리하기 위해 Javascript 개체를 사용하는 Greasemonkey 스크립트가 있습니다. 상당히 많은 양의 정보를 다루지 만 문제가 발생하기 전에 성공적으로 저장하고 검색 한 것보다 훨씬 적습니다. 하나의 가치는 저축을 거부하며, 왜 저의 삶이 그 이유를 결정할 수는 없습니다. 다음과 같은 문제 코드 :Greasemonkey가 GM_setValue()에 실패했습니다.
- 더 큰 다른 개체를 유지 관리합니다.
- 현재 이전에 작업 한 것보다 적은 양의 데이터를 처리하고 있습니다.
- 함수 또는 다른 개체 정의와 충돌하지 않습니다.
- 코드 시작시 문제 저장소 키를 "{}"로 성공적으로 저장할 수 있습니다 (선택 사항).
this.save = function(table) {
var tables = this.tables;
if(table)
tables = [table];
for(i in tables) {
logger.log(this[tables[i]]);
logger.log(JSON.stringify(this[tables[i]]));
GM_setValue(tables[i] + "_" + this.user, JSON.stringify(this[tables[i]]));
logger.log(tables[i] + "_" + this.user + " updated");
logger.log(GM_getValue(tables[i] + "_" + this.user));
}
}
문제는 지속적으로 재현 및 로깅 문에서도이 방화범 다음과 같은 출력을 생성 :
이- 오브젝트 {54,10 = 개체} // 확장이 예상대로 전체 내용을 보여 주지만, Firebug는 익명의 객체 대신 검은 색 대신 객체 키를 자주색으로 강조 표시합니다.
- { "54,10": { "x": 54, "y": 10, "name": "Lucky Pheasant"}} // 제대로 문자열로 묶은 JSON. 나는 객체 키의 형식을 변경 시도
어떤 문제가 있습니까? 필자는 크기 제약 조건에 대해 철저히 조사했으나 문제가 될 수있는 것으로 보지 않습니다. 이전에 언급했듯이 이미 스토리지 사용량을 줄였습니다. 다른 큰 개체는 여전히 저장되며, 이미 많지 않은 개체의 총 수가 여기에 저장하려고하는 데이터의 양보다 더 많이 줄어 듭니다.