아약스 대체 옵션 1 ~ 보내지는 요청을 사용하는 iframe

iframe을 만들 적절한 교통 수단에 대한 비동기 호출을 로드할 수있습니다 콘텐츠를하지 않고 있기 때문에 원인을 전체 페이지를 다시로드, 새로운 iframe 요소가 자바 스크립트를 사용하여 만들 수있습니다. 가 텍스쳐 특성 내용은 한 iframe은 하나를 사용할 수있는 형태로 그 대상을 다시로드하는 iframe 대신에 전체 페이지; 이 접근법을 사용하면 대량의 데이터를 게시를 사용하여 서버로 전송됩니다.

  

하나의 어려움이 사용하는 iframe으로 전송은 해당 페이지가 드릴 로딩해야 할 html, 그리고 그것 필요가있는 자바 스크립트 onload 이벤트 처리기로 알려주는 부모 문서가되면 완료를로드합니다. 미군이 필요로 만든 모든 요청되고 iframe으로 페이지 내용을 다루기 위해 고안된 iframe를 요청합니다. (코드 수없습니다 파일로 바로 잡으되는 방식에 xmlhttprequest를 사용하면됩니다.)

참고로 iframe의 사용을 더 이상하지가있는 수를 제한 사항 :

하나의 장점하는 iframe했습니다 xmlhttprequest는 것이 이상하게 파일을 업로드하는 데 사용할 수있습니다. 브라우저 보안 제한으로 인해서만 사용자의 동작과 같은 양식을 클릭하면, 사용자의 컴퓨터에있는 파일의 상호 작용할 수있습니다. 이렇게하면 타겟팅이 한 형태로 iframe의 유일한 옵션에 대한 파일 업로드가 필요하지 않은가 필요합니다 정상적인 양식을 게시하고 페이지를 다시 로딩주기가있습니다. 그러나 수없는 이유는 없다 하락 위로를 사용하는 iframe에 대한 파일을 업로드 및 xmlhttprequest의 나머지 부분에 대한 귀하의 아약스를 요청합니다. 제작하지 않는 경우에는 원격 스크립팅 - 스타일 아약스 요청, 근무 주위 iframe 한계가 추가 상당량의 작품을 어떠한 아약스 개발 프로젝트입니다.

숨겨진 iframe 만들기

최대 오래된 브라우저와 호환을 얻을 수있습니다 단지를 추가 iframe에 코드를 부여하여 그것의 크기가 0x0입니다. (수없는 것이 바로 숨기기, 또는 일부 브라우저로드되지 않습니다 그것입니다.) 그러나,이 접근법이없는 유연한, 이렇게하면 프레임을 동적으로 만들려합니다. 모든 이전 버전의 브라우저를 지원하지 않습니다 document.createelement지만을 지원하는 브라우저를하지 않고는 보통의 다른 동적 역량 부족을 사용하는 데 필요한 데이터를 원하는 로딩하므로 그들에게 지원을 제공하기 위해 최선을 정적인 버전의 페이지입니다. 다음 예제에서, innerhtml을 사용하여 만든 iframe이보다 간단하기 때문에의 메소드를 사용하여 작성합니다. 참고 그러나, 수도를 사용하여 만든 것이 document.createelement, 그냥 마음에 div가 어떤 것이되고들 :

한 변수 rdiv = document.createelement ( 'div');
이 rdiv.id = 'remotingdiv';
3 변수 스타일 = '국경 : 0; 폭 : 0; 높이 : 0; ';
4 rdiv.innerhtml = " ";
6
7 document.body.appendchild (rdiv);

작성하는 양식

를 얻을 수 있도록하려는 경우에만 요청을하실 수있습니다의 값을 변경합니다 iframe의 src 속성을하지만 이렇게 게시물을 타겟 형태를 사용해야합니다. 좋은 해결책을 얻을 수없습니다 아약스 요청에 대한 두가 지 이유 : 그것은 제한된 양의 데이터를 보낼 수있습니다만이 (있는 금액에 따라 변경되는 브라우저), 그리고 얻을 수있습니다 캐싱 및 / 또는 프록시 서버에 의해 미리로드되므로 그것을 사용하려면 데이터베이스를 업데이 트하는 등의 작업을 수행합니다.

를 사용하는 양식으로 iframe은 쉽습니다. 방금 설정하는 형태의 타겟 특성, 그리고 양식을 제출하면, 그 결과에로드 iframe입니다. 다음 예제는 우리의 양식과 세트를 만들어 그 목표물을 iframe 우리가 이전에 만들어진 "을 만드는 숨겨진 iframe"섹션의 기사 :

1 rdiv.form = document.createelement ( '폼');
이 rdiv.form.setattribute ( 'id'아이다호 + 'remotingform');
3 rdiv.form.setattribute ( '작업', :);
4 rdiv.form.setattribute ( '대상'아이다호);
5 rdiv.form.target = id;
6 rdiv.form.setattribute ( '방법', '게시');
7 rdiv.form.innerhtml = ' 8 id = " '+ id +'데이터"> ';

보내 데이터를 읽어 내용을 원래 문서

수있는 유일한 방법을 알고있는가 콘텐츠의 iframe가로드는가의 콘텐츠 페이지를 실행 일부 자바 스크립트가 알립니다가 상위 페이지에있는 iframe이 포함되어있습니다. 가 장 간단한 방법을 설정하는 작업을 수행입니다 onload 이벤트 처리기에있는 문서를로드하는 중입니다. 이 제한을 의미합니다 iframe에 대해 사용할 수없습니다 임의의 내용처럼로드하실 수있습니다 xmlhttprequest과 함께합니다. 그러나, 그것은 아직 유용에 대한 사례를 단일 서버 페이지는 이미 아약스 게이트웨이로 사용되고있습니다. 다음은 하나의 예 onload :

<본문 onload = "parent.document.callback (결과)">

전체 iframe 아약스 들어

전체 예제는 iframe 아약스를 요청하는 두 개의 작품을 포함합니다. 의 첫 번째 작품은 클라이언트 - 사이드 코드를 만들려는 iframe 및 양식입니다. 두 번째 작품은 서버 - 사이드 코드를 저지르는 일부 데이터를 보내는 것이 위로가 상위 문서의 onload 이벤트 처리기입니다.

의 첫 번째 부분을 예제 (예제 1)은 자바 스크립트 코드를 간단한 파일입니다. 이 페이지는 데 사용에 대한 테스트를; 콜백 함수가 바로 알리미의 내용에 결과가있습니다. 두 번째 부분을 들어 (예제 2)은 간단한 php 스크립트, 어떤은의 데이터를 게시 및 보내는 것이 위로가 상위 문서입니다. 수 있도록하는 유용한 시스템, 일부 여분의 변수를 포함시킬 수도있습니다의 형태, 어떤 것이 알 수있는 php 코드가 무엇을해야으로 업로드된 데이터, 또는 당신의 논리를 직접 넣을 수있다는 스크립트를 사용하는 서로 다른 대상 페이지에 대한 각 작업을 수행하실 싶었다.

목록 1. 제작 an 아약스 요청을 사용하는 iframe

1
2
3