>  기사  >  웹 프론트엔드  >  Node.js는 데이터 공유 인터페이스를 생성합니다 - Frameworks_javascript 기술 간의 상호 가치 전달을 단순화합니다.

Node.js는 데이터 공유 인터페이스를 생성합니다 - Frameworks_javascript 기술 간의 상호 가치 전달을 단순화합니다.

WBOY
WBOY원래의
2016-05-16 18:00:241077검색

많은 프레임워크에는 부모-자식 관계가 있어 작동하기가 매우 어렵습니다. 많은 학생들이 종종 다음과 같은 비참한 코드를 가지고 있습니다.

코드 복사 코드는 다음과 같습니다.

window.parent.document.getElementById("main")
.contentWindow.document.getElementById('input').value =
document.getElementById ('myIframe')
.contentWindow.document.getElementById('s0').value;

사실 이 문제는 window.top이라는 고정된 창이 있습니다. 프레임워크 애플리케이션에서 데이터를 이 페이지에 캐시하면 하위 페이지가 어떻게 변경되든 그 아래의 모든 프레임을 얻을 수 있습니다. 쿠키나 HTML5 로컬 데이터베이스 전략을 사용할 필요가 없습니다. 각 페이지에 다음 내용이 포함된 js 파일을 참조하면 됩니다.
코드 복사 코드는 다음과 같습니다.

var share = {
/**
* 크로스 프레임 데이터 공유 인터페이스
* @param {String} 저장된 데이터 이름
* @param {Any} 저장할 모든 데이터 (이 항목이 없으면 쿼리된 데이터가 반환됩니다. )
*/
data: 함수(이름, 값) {
var top = window.top,
cache = top['_CACHE'] || {};
top['_CACHE'] = 캐시
반환 값 ? 캐시[이름];
/**
* 데이터 공유 삭제 인터페이스
* @param {String} 삭제된 데이터 이름
*/
removeData: 함수(이름) {
var 캐시 = window.top['_CACHE']
if (cache && 캐시[ 이름]) delete 캐시[이름]
}
};

단 몇 줄의 이 방법을 사용하면 각 프레임 페이지에 대해 모든 유형의 데이터를 공유할 수 있습니다. 페이지 이름과 관련이 있으며, 레벨은 관련이 없습니다. 어느 날 프레임 페이지 레벨이 수정되더라도 전혀 걱정하지 않으셔도 정상적으로 작동됩니다.
예를 들어 페이지 A에 공유 데이터를 저장할 수 있는 경우:

코드 복사 코드는 다음과 같습니다.
share.data('myblog', 'http://www.jb51.net')
share.data('editTitle', function (val) {
document. title = val;
})

그런 다음 프레임 페이지는 페이지 A의 데이터를 무작위로 가져옵니다.

코드 복사 코드는 다음과 같습니다.
alert('내 블로그 주소는 ' share.data('myblog');
var editTitle = share.data(' editTitle');
editTitle('데이터를 얻었습니다');

그렇습니다.
artDialog.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.