현재 WeChat은 각 미니 프로그램에 10M의 로컬 캐시 공간을 제공합니다(맙소사, 너무 크네요)
로컬 캐시를 사용하면 미니 프로그램에서 다음 작업을 수행할 수 있습니다.
오프라인 애플리케이션(네트워크 없이 캐시된 데이터를 작동하는 것으로 테스트됨)
부드러운 사용자 경험
네트워크 요청을 줄이고 서버 리소스를 절약
캐시에 적합한 데이터:
핫 데이터
정적 데이터(사용자 데이터, 서버 인증 ID 등)
네트워크 주소(사진, 파일 등의 네트워크 주소)
페이징 목록 데이터 및 세부 콘텐츠
일반 캐시 시스템은 키-값 쌍을 사용하여 을 수행하여 데이터 삽입 및 읽기를 완료합니다. key에 대한 해시 알고리즘, 고유한 값이 얻어지고 가 을 쿼리할 때 알고리즘 공간이 해시된 키를 기반으로 쿼리됩니다. 복잡도 O(1);
미니 프로그램의 로컬 캐시 구현은 위의 방법을 기반으로 합니다. 그러나 데이터가 ROM에 저장되는지, 아니면 지속성을 위해 RAM에 저장되는지는 아직 연구 대상으로 남아 있습니다.
로컬 캐시 데이터 작업에는 동기식과 비동기식의 두 가지 유형이 있습니다. 동기화 방법에는 성공적인 데이터 처리 후 작업을 나타내는 성공 콜백 함수 가 있습니다. 다음은 미니 프로그램에서 제공하는 로컬 캐시 동작 인터페이스입니다.
操作 | 异步方法 | 同步方法 |
---|---|---|
插入 | wx.setStorage | wx.setStorageSync |
读取 | wx.getStorage | wx.getStorageSync |
删除 | wx.removeStorage | wx.removeStorageSync |
清空 | wx.clearStorage | wx.clearStorageSync |
获取缓存信息 | wx.getStorageInfo | wx.getStorageInfoSync |
Sync로 끝나는 모든 방법은 동기화 방법입니다. 동기 메서드와 비동기 메서드의 차이점은 다음과 같습니다.
동기 메서드는 동기 메서드가 반환될 때까지 현재 작업을 차단합니다.
비동기 방식은 현재 작업을 차단하지 않습니다.
6. 다음은 동기화와 비동기의 차이점을 설명하기 위해 캐시를 삽입하는 두 가지 방법입니다.
1. 비동기 메서드를 먼저 호출한 다음 동기 메서드를 호출합니다. 🎜>
Page({save: function(e){console.log('开始保存')wx.setStorage({ key: 'key1', data: 'data1', success: function(res){ console.log('异步保存成功') }})wx.setStorageSync('key2', 'data2')console.log('同步保存成功') }})실행 결과:
Page({save: function(e){console.log('开始保存')wx.setStorageSync('key2', 'data2')console.log('同步保存成功')wx.setStorage({ key: 'key1', data: 'data1', success: function(res){ console.log('异步保存成功') }}) }})실행 결과:
디버깅 조건에서 각 미니 프로그램 코드 스캐닝 사용자에게 10M 로컬 캐시가 할당되는 것으로 추론할 수 있습니다. 위 내용은 실제 기기에서 직접 테스트한 결과이며, 결과는 완전히 정확하지 않을 수 있으며 참고용일 뿐입니다.
PigCms 마이크로 전자상거래 시스템 운영 버전 (독립 위챗 매장몰 + 3단계 유통 시스템)
3.WeChat People Network v3.4.5 Advanced Business Edition WeChat Rubik's Cube 소스 코드
위 내용은 WeChat 개발 소개 (9) 로컬 캐시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!