2009년 11월 18일 수요일

OpenSocial 플랫폼에서 Jquery ajax의 효과적 사용

오픈소셜로 애플리케이션들이 속속 만들어지고 있다.

한국의 오픈소셜 컨테이어는 오픈소셜사이트의 컨테이너 목록 을 보면 cyworld와 IDTail 두곳이 있다.

오픈소셜에 애플리케이션을 만들기 위해 기존의 사이트를 오픈소셜용으로 재작업 하는데 기존의 서비스가 Jquery 로 구동되는지라 makeRequest 를 이용하여 JQuery의 Ajax함수를 오버라이드 하여 사용하니 개발 시간적인 측면에서 상당히 효과적이였다.

  1. /* overwrite $.ajax to opensocial ajax */
  2. var global_callback_func = "";
  3. function ajaxRequest(url, callback_func, post_params){
  4.       var queryString = "";
  5.       for (k in post_params) {
  6.           if(typeof post_params[k] == "object"){
  7.             $.each(post_params[k],function(name,value){
  8.                 if(name == "name"){
  9.                     queryString += "&" + value + "=";
  10.                 }
  11.                 if(name == "value"){
  12.                     queryString += encodeURIComponent(value);
  13.                 }
  14.             });    
  15.           }else{
  16.               queryString += "&" + k + "=" + encodeURIComponent(post_params[k]);
  17.           }
  18.       }
  19.       var osParams = {};
  20.       osParams[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
  21.       osParams[gadgets.io.RequestParameters.POST_DATA] = queryString;
  22.       osParams[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.SIGNED;
  23.       global_callback_func = callback_func;
  24.       gadgets.io.makeRequest(url, makeRequest_callback, osParams);
  25. }
  26. function makeRequest_callback(result){
  27.     global_callback_func(result.data);
  28. }
  29. $.ajax = function(objAjax){
  30.     ajaxRequest(objAjax.url, objAjax.success, objAjax.data);    
  31. }
* This source code was highlighted with Source Code Highlighter.

Ajax 라이브러리를 모두 포함 시키고 마지막에 위의 코드로 오버라이드 하면 기존의 자바스크립트 변경을 최소화 하여 오픈소셜 컨테이너로 포팅 할수 있다.


댓글 없음:

댓글 쓰기