IE에서 스크롤값 구하기.

window의 스크롤된 X축과 Y축을 IE를 제외 하고는 아래와 같이 좌표 정보를 동일한 방법으로 얻을 수 있습니다.
scroll값 구하기
또 하나, 최신 브라우저는 (window.pageXOffset == window.scrollX) 동일한 값을 반환하니, IE를 제외하고는 사용하셔도 됩니다.

하지만, IE는 동작하지 않아 별도의 처리가 필요합니다.

// IE에서 스크롤값 구하기
document.body.parentNode.scrollTop 
document.body.parentNode.scrollLeft

Google Analytics 유입경로 자세히 보기

Google Analytics 유입경로 자세히 보기 위해서는 당연히 웹사이트에 접속한 사용자들을 집계해주는 Google Analytics의 기능은 사용해야 합니다.  최근 유입경로를 세분화해서 알아야 하는 이슈가 있어서
찾아보니 설정을 하는 방법이 있어 노트합니다.

1. 상세 집계 설정하기 전 유입경로는 아래와 같이 대표 도메인이 표시됩니다.
(메뉴 : 구글통계 사이트 > 트레픽소스 > 전체)

여기서  referral과 organic의 차이점이 무엇인지 찾아보았는데,
referral은 직접적으로 제공된 링크를 통해 유입된 사용자. (예: 참조링크, 이메일에 본문의 다이렉트 경로)
organic은 검색엔진을 통해 검색된 리스트에서 내 사이트를 들어온 사용자.
Google Analytics 유입경로 자세히 보기

2. 설정방법 (관리 > 필터 > 새 필터)

3. 설정 후 하루가 지난후 통계내용 (잠재고객 > 맞춤 > 맞춤설정에 노출됩니다.)

[참고] 파일의 다운로드 횟수를 알고 싶을때

jQuery의 JSONP을 사용한 크로스도메인간 통신

웹은 Same origin policy이 동일한 도메인상의 요청만 가능하도록 제한하였지만,
도메인간 데이터 통신으로부터 다이나믹한 웹구현을 위한 방법으로 JSONP가 나오게 된것이다.

jQuery의 ajax를 이용한 두가지 jsonp 요청 방법을 지금부터 소개 하겠습니다.

첫번째, 요청 URL뒤에 ?callback=? 추가하여 jsonp 요청 구현하기

jQuery 1.2부터는 JSONP 호출에 대한 네이티브 지원이 제공되고 있다. JSONP 콜백을 지정한 경우 다른 도메인에 있는 JSON 데이터를 로드할 수 있으며 JSON 콜백은 url?callback=? 라는 구문을 사용하여 지정할 수 있다.

$.getJSON() 방식을 살펴보면 url 맨 끝에 callback=이라는 문자열과 함께 실제 함수 이름 대신 ? 기호를 콜백 함수 이름으로 입력하는 것을 볼 수 있다.

이는 jQuery가 ? 기호를 인라인 함수를 호출하는 생성된 함수 이름(예:jsonp1234568416)으로 바꾸기 때문이다. 굳이 ? 을 적을 필요는 없고 따로 처리하는 콜백 함수가 있다면 해당 함수의 이름을 적어줘도 무방하다. (익명 메소드로 바로 처리할 경우 반드시 ? 를 써줄 것)

Client

$.getJSON("https://codejs.mycafe24.com/jsonp.json?callback=?",
  function(data) {
    console.log('성공 - ', data);
  }
);

Server (jquery에서 생성한 익명의 callback함수명을 받아 감싸서 응답 준비를 합니다.)

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");
         
    String id = request.getParameter("id");
    String callBack = request.getParameter("callback");
 
    JSONObject obj = new JSONObject();
    obj.put("result", id);
    obj.put("go", "테스트");
         
    PrintWriter out = response.getWriter();
    out.write(callBack + "(" + obj.toString() + ")");
    System.out.println(callBack + "(" + obj.toString() + ")");
    out.flush();
    out.close();
}

두번째, 응답 json에 callback함수로 한번 감싸서 jsonp 구현하기

Client

$('a').click(function() {
  $.ajax({
    url: "https://codejs.mycafe24.com/jsonp.json",
    dataType: 'jsonp',
    jsonpCallback: "myCallback",
    success: function(data) {
      console.log('성공 - ', data);
    },
    error: function(xhr) {
      console.log('실패 - ', xhr);
    }
  });
});

Server

myCallback({"message":"You got an AJAX response via JSONP from another site!"});

JSONP로 ajax 호출을 하기 위해선 위와같이 함수안에 json 문자열이 들어간 형식으로 서버에서 리턴을 해줘야 가능하다.

서버에서 파라메터로 응답 JSON함수명을 생성하여 보안을 강화하는 방법도 있으니,
그부분은 http://stove99.tistory.com/10 이곳을 참고 하면됩니다.

세번째, jsonpCallback 옵션없이 사용하기.

Client

$('a').click(function() {
  $.ajax({
    url: "https://codejs.mycafe24.com/jsonp.json",
    dataType: 'jsonp',
    success: function(data) {
      console.log('성공 - ', data);
    },
    error: function(xhr) {
      console.log('실패 - ', xhr);
    }
  });
});

Server

jQuery18305806868467951786_1366340807385({"key":"value"});

jQuery18305806868467951786_1366340807385(요청시 마다 바뀜)은 jsonpCallback을 지정하지 않으면 jQuery에서 자동으로 callback 요청 매개변수를 자동 생성해서 요청한다.
요청을 받은 서버에서는 callback 매개변수값을 함수 호출 하듯 감싸서 응답하면 된다.

참고 : http://warmz.tistory.com/739