웹 사이트 용 html 위젯을 만들고 있습니다. 현재 주가 지수를 표시한다고 가정 해 봅시다.
요컨대, 임의의 웹 사이트 소유자는 내게서 코드 스 니펫을 가져 와서 자신의 웹 페이지 http://website.com/index.html에 포함시킵니다. 임의의 사용자가 http://website.com/index.html을 열 때 코드가 내 서버 (provider.com)에 요청을 보내면 필요한 작업을 수행하고 사용자의 브라우저에 정보를 반환합니다. 응답이 도착하면 http://website.com/index.html에 관련 재고 값이 표시됩니다. index.html을 서비스에서 서버와 통신하는 html 위젯
<script type="text/javascript" src="provider.com/service.js"> </script>
<div id="target_area"></div>
<script type="text/javascript">
service.show("target_area", options);
</script>
처럼 호출 할 수 있습니다 : 난 그냥 provided.com에 website.com에서 아약스 요청을 보내고에 HTML을 반환 할 수 없습니다 고객의 웹 페이지에 삽입합니다. 아래에 나열된 몇 가지 해결책이 있지만 아무도 나를 만족시키지 못합니다. 네가 뭔가 제안 할 수 있다면, 특히 관련 경험이 있다면 궁금해.
1) iframe, plain 및 simple. 단점 : 일부 브라우저에는 고정 치수 + 바보 같은 스크롤 막대가 나타나야합니다. javascript로 고칠 수 있지만,이 브라우저마다 변하지 않는 것은 나에게 좋지 않습니다.
2) JSONP. 문제 : html 전체 덩어리를 반환 할 수 없으며 데이터 만 반환해야합니다. 그런 다음 브라우저 측면에서 javascript를 사용하여 index.html에 정적으로 배치 된 HTML 스 니펫에 데이터를 포함해야합니다. 데이터 형식이 그리 간단하지 않고 나중에 변경 될 수도 있기 때문에 좋지 않습니다.
3) 숨겨진 iframe을 사용하여 아약스 요청을하십시오. 조금 까다 롭긴하지만 갈 길 같은데.
글쎄, 그 주제에 대한 내 생각. 더 좋은 방법이 있습니까?
나는 기존의 위젯을 확인하려고했지만 많은 유용한 정보를 찾지 못했습니다. 이 문서에 사용 된
모든 도메인 이름은 허구와 SLaks 제안으로 어떤 유사점은 작품 지금 순전히 우연의 일치 :
업데이트입니다! 옵션 : 사람이 세부 사항에 관심이 있다면, 응답 HTML 당신은 " 'JSONP'dataType와"로 jQuery를 사용할 수 있습니다, 그 후
body = body.gsub '"', '\\"'
body = body.gsub /\n/, '\\n';
body = body.gsub '/', '\\/';
body = params[:callback] + '("' + body + '");';
이 (루비)와 같은 사후 처리되어야한다.
등, 암호화 및/또는 provider.com, 인증 및 권한 부여와의 통신을 압축, 잠시 동안 캐싱 답변처럼, 프록시에 가치를 추가 할 수 있다는 것입니다 이스케이프 HTML 및 문자열 상수로 반환 할? 서버에서 이러한 종류의 후 처리를 추가하는 것은 까다로울 수 있지만 (레일에서 루비를 사용하고 있지만 자바에서 너무 사소한 것은 아님) 좋은 아이디어 인 것 같습니다. 어쨌든, 한번 시도해 볼게! –
환경에 JSON 인코더가 있어야합니다. – SLaks
사실,하지만 그것은 json을 반환하고 html은 반환하지 않는다고 가정합니다. 모든 것을 인코딩하는 것은 다소 까다 롭습니다 (따옴표, 줄 바꿈 등 바꾸기). 그러나 나는 가고 있습니다. –