0

jQuery .data() 함수를 사용하여 정보를 저장하는 웹 앱을 업데이트하려고합니다. 업데이트에는 동일한 페이지에서 div 만 사용하는 대신 다양한 유형의 정보에 대해 별도의 창이 있도록 인터페이스 리팩토링이 필요합니다. 일부 플러그인이 작동하는 방식 때문에이를 호출하는 코드가 다른 창으로 이동되어 필요한 곳에서 실행됩니다. 그러나 이러한 플러그인에서 사용되는 많은 콜백은 저장된 정보를 찾기 위해 .data()을 사용하지만 .data()에 저장된 데이터를 설정하는 코드는 부모 창에 있으며 DOM에 데이터를 첨부하지 않는 것처럼 보이며 어딘가에 저장합니다 창에 첨부되어 있으므로 자식 윈도우에서 콜백은 더 이상 찾고있는 데이터를 찾을 수 없습니다.Windows에서 jQuery.data 지원

call(parent, DOMelement.data);을 사용하면 작동합니까? 그리고 아마도 이것을 다루는 더 세련된 방법이 있을까요?

미리 감사드립니다.

+0

이것은'$ .data()'함수가 아니라 쿠키에 이상적인 용도로 들립니다. – Sablefoste

+1

쿠키? 현대 브라우저가 아니기 때문에 – epascarello

+0

Localstorage가 아마 여기에서도 작동 할 것입니다 –

답변

0

모든 제안을 주셔서 감사합니다. 정보가 현재 세션 이상으로 저장 될 필요가 없으므로 쿠키를 사용하지 않았습니다. 모든 상호 작용은 자바 스크립트를 통해 이루어지며 마지막에 저장할 때까지 서버 요청이 없습니다. 의사 소통해야하는 창은 모두 동시에 열려 있으므로 call() 제안입니다. 구문 및 기능이 거의 동일하므로 .data 대신 .prop을 사용하여이 문제를 해결했습니다. 이는 관련 창에서 DOM과 데이터를 직접 연관시킵니다. $ _SESSION은 각 페이지가 서버에서 요청 될 때만 작동합니다.

페이지를 새로 고치지 않고 동시에 여러 창에서 액세스해야하는 정보를 저장하려는 경우 jQuery .prop() 함수를 사용하여 데이터를 DOM에 첨부 할 수 있습니다. .attr()도 사용할 수 있지만 .prop()을 사용하면 값에 직접 액세스 할 수 있습니다. 표기법. .data 함수는 순환 참조를 방지하도록 설계되었지만 각 컨텍스트에 대해 별도로 정보를 저장하는 .data을 사용하지 않고는 정보를 저장할 수 없으므로 정보를 어딘가에 저장합니다.