이 기사의 내용은 WeChat 애플릿이 백그라운드에서 대량의 중복 데이터를 반환하는 문제를 해결하는 방법에 대한 것입니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다. 너.
플랫폼 인터페이스는 배열에 N개의 개체가 있고 각 개체에 수십 또는 수백 개의 데이터가 있다는 것이 가장 흥미로운 점은 각 개체에 특정 두 개의 데이터만 필요하다는 것입니다. .... 이길 수 없습니다. 이길 수 있다면 그냥 싸우세요.
데이터가 너무 많으면 네트워크 요청에 큰 영향을 미치나요? 솔직히 말해서 큰 그림도 아니고, 몇 메가바이트의 사진도 아니고, 데이터를 반환하는 속도에서 지연을 느낄 수 없습니다. 하지만 데이터가 너무 많으면작은프로그램
렌더링 인터페이스에 영향이 있을까요?
답은: 그렇습니다! 일반적으로 wxml에 데이터를 loop한 후 item.id와 item.name을 빼냅니다. 그 외의 데이터는 저희와는 관련이 없어 보이지만 공식문서 setData 관련 내용을 확인해 보면 다음과 같은 문단이 있습니다. #🎜🎜 #setData는 미니 프로그램 개발에 가장 많이 사용되는 인터페이스이자 성능 문제를 일으킬 가능성이 가장 높은 인터페이스이기도 합니다. 흔히 발생하는 잘못된 사용법을 소개하기 전에 setData의 작동 원리를 간략하게 소개하겠습니다.
작동 원리
애플릿의 뷰 계층은 현재 WebView를 렌더링 캐리어로 사용하는 반면 논리 계층은 독립적인 JavascriptCore를 실행 환경으로 사용합니다. 구조적으로 WebView와 JavascriptCore는 독립적인 모듈이며 직접적인 데이터 공유를 위한 채널이 없습니다. 현재 뷰 레이어와 로직 레이어 간의 데이터 전송은 실제로 양 당사자가 제공하는 평가Javascript를 통해 구현됩니다. 즉, 사용자가 전송한 데이터를 문자열로 변환하여 전달해야 함과 동시에 변환된 데이터 내용을 JS 스크립트로 엮은 후 실행을 통해 양쪽의 독립된 환경에 전달해야 합니다. JS 스크립트.
evaluateJavascript의 실행은 여러 측면의 영향을 받으며 뷰 레이어에 도착하는 데이터는 실시간이 아닙니다. 사실 setData의 모든 데이터는 문자열로 변환된 다음 문자열 우표가 JS 스크립트로 변환되고 페이지는 JS 스크립트에 따라 페이지를 렌더링합니다.
다음과 같이 작성할 수 있습니다:
datas:[ { id:1000, name: "帅哥", title: '...', b: '...', d: 0, f:0, .... }, { id:1001, name: "美女", title: '...', b: '...', d: 0, f:0, .... }, ... ]
[mw_shl_code=applescript,true] var tempData = [] for(var i = 0; i < datas.length; i++) { var tempObj = {} tempObj.id = datas[i].id tempObj.name = datas[i].name tempData.push(tempObj) } console.log(tempData) [/mw_shl_code]이때 setData({})를 사용할 수 있습니다. 렌더링 효율성을 높이기 위해
let tempDatas = datas.map(function(data){ return { id: data.id, name: data.name } }) console.log(tempDatas)이때, 페이지에 렌더링되었으며 obj를 수정한 후 다음을 선택할 수 있습니다. 1) 일반적인 접근 방식
obj:{a:"a",b:"b",c:"c"},2) 하지만 더 최적화된 접근 방식은 # 🎜🎜#
let obj = this.data.objobj.b = "我是后来修改的"this.setData({ obj: obj})
절약할 뿐만 아니라 두 줄의 코드가 추가되어 페이지 렌더링 효율성도 향상됩니다. 2. 실제로는 1과 유사합니다. 즉, 원하는 경우 Object가 Array가 됩니다. 배열의 데이터 중 하나를 수정하려면 위의 방법을 참조하세요
this.setData({ 'obj.b': "我是后来修改的"})#🎜 🎜#배열의 여러 데이터를 수정하려면 루프를 작성한 다음 배열을 수정합니다. 시간은 인식할 수 없습니다.
this.setData({ 'array[1]': "我是后来修改的"})관련 권장 사항: #🎜 🎜#WeChat 애플릿에서 시간 형식 지정 코드 구현
위 내용은 WeChat 미니 프로그램이 백그라운드에서 대량의 중복 데이터를 반환하는 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!