2011-07-31 2 views
2

서버가 HTML 자체에서 생성하는 웹 페이지의 스켈 레탈 스냅 샷을 저장하므로 Ajax 요청을 서버로 다시 보낼 때 서버는 페이지는 클라이언트가 보였고 적절한 diff를 되돌려 보냅니다.클라이언트의 HTML에 데이터를 저장하는 방법/위치

이 뼈대는 기본적으로 Tree입니다. 각 노드는 구성 요소 (메뉴 모음, 사이드 바, 내용, 주석 등)를 나타내며 하위 구성 요소입니다.

현재 저는 Base64ed GZiped JSONed 데이터로 저장하고 있습니다. 순수한 JSON으로 약 4000자를 처리하지만 엔코딩하려면 약 500 자 정도 소요됩니다. (관심이 없으면 python의 Pickle은 ~ 3000 자까지만 압축하지만 ~ 2000까지만 압축합니다.)

내 질문은 데이터를 다운시킬 수있는 다른 방법이 있습니까? Base64보다 더 작은 웹 안전한 데이터 형식? GZip보다 컴팩트 한 압축? gzip 함수의 "레벨"을 6에서 9로 높이면 결과적으로 (~ 20 문자) 절약 효과가 나타납니다.

그리고 다른 질문은이 데이터를 어디로 이동해야합니까? 현재는 숨겨진 입력 필드의 가치에 어딘가에 앉아 있습니다. 어떤 입력의 속성, 다른 태그의 속성, 표시가있는 div의 내용이 숨겨져 있는지 여부가 중요합니까? 아니면 신경 쓸 가치가없는 것입니까?

답변

1

숨겨진 필드에 저장하는 이유가 없습니다. 나는 숨겨진 필드에 그것을 저장하는 것이 좋습니다 wouldnt. 아마 Jquerys 데이터 메서드를 사용하여 json을 저장하거나 올바르게 범위가 지정된 javascript 변수에 저장하면됩니다.

음 나는 DIFF를 얻기 위해 어떤 접근을하고 있는지 잘 모르겠습니다. 클라이언트에서 저장된 데이터를 서버로 다시 보내거나 서버에서 클라이언트로 데이터를 보낸 다음 더 나은 옵션 일 수있는 클라이언트 측에서 DIFF입니까?

압축에 관해서는 네가 너무 감정적이지 않기 때문에 네가 너무 집중해야한다고 생각하지 않는다. 그때는 아마 데이터를 압축해야하는 경우 그게 전부한다면하여 확인하는 현재의 것은

compression + decompression < time taken for transfer 

이 될 것입니다.

+0

나는 diffing을 서버에 보내고 diff를 클라이언트에게 보낸다. 나는 어느 쪽이든 그것을 할 수 있었지만 자바 스크립트가 마음에 들지 않아 최소한 $ D에 코딩을하고 싶습니다. 압축에 필요한 시간을 확인하겠습니다. 아마 나는 자바 스크립트 변수에 그것을 작성해야합니다. –

+0

그래, 나는 같은 것을 제안 할 것이다 .. – Baz1nga

관련 문제