위대한 alert()를 사용하여 시간을 측정해보았는데, 다음의 코드에서 걸리더군요.
if (typeof this.options.parameters == 'string')추적을해보고 이리저리 시험을 해본 결과 Ajax.Request를 사용할 때 parameter로 준 값이 문제가 되었습니다.
this.options.parameters = this.options.parameters.toQueryParams();
parameter의 값을 string타입으로 encodeURIComponent를 사용하여 encoding하고 넘겨준 경우
- this.options.parameters.toQueryParams()를 거치면서 decoding 후,
- Hash로 바꾸게 됩니다.
해당부분의 경우 Hash로 넘겨주게 되면(encoding안 한 상태에서) 88초 정도의 시간을 줄일 수 있었습니다.
P.S. 이문제를 해결하기 위해서 시간을 출력하는 코드를 찾아봤는데 Date 클래스의 parse()가 유용하더군요.
Date.parse(new Date().toString());출력되는 값은 milliseconds단위로 출력되게 됩니다.
P.S.2 이자리를 빌어, 도움을 주신 J모 과장님과 L모 대리님께 감사를, 저 때문에 고생하신 개발팀원 여러분께 사과를 (__) ....
P.S.3 Ajax의 parameters로는 URL-encoded string과 Hash-compatible object를 사용할 수 있습니다.
댓글 없음:
댓글 쓰기