2011-10-07 3 views
0

node.js와 socket.io를 사용하고 있으며 게임을 만들고 있습니다. 클라이언트에게 보낼 필요가있는 스프라이트가 너무 많아서 클라이언트 컴퓨터에 데이터를 저장하는 것에 대한 대역폭을 줄이기 위해 생각했습니다. 지금은 기본 아이디어는 일단 다운로드 한 다음 클라이언트 컴퓨터에 저장된다는 것입니다. 그러나 클라이언트의 파일을 어떻게 제어 할 수 있습니까? 그리고 어떻게 사진/일반 데이터를 클라이언트의 컴퓨터에 저장할 수 있습니까? 여기 매번 보내는 대신 이미지를 저장하거나 클라이언트에서 이미지를로드 할 수 있습니까?

내가 뭘하는지입니다 : 당신은 html5 offline applications spec 살펴 보셔야합니다

self.sources = 
    [ 
     [//trees, 0 
      "res/images/enviornment/trees/tree_1_1.png",//0 
      "res/images/enviornment/trees/tree_1_2.png",//1 
      "res/images/enviornment/trees/tree_1_3.png",//2 
      "res/images/enviornment/trees/tree_1_4.png",//3 
     ], //there are many other pictures, but this is just the concept 
];   

self.images = new Array(); 
for (i = 0; i < self.sources.length; i++) 
{ 
     self.images.push([]); 
     for(t = 0; t < self.sources[i].length; t++) 
     { 
      self.images[i][t] = new Image(); 
      self.images[i][t].src = self.sources[i][t];  
     } 
} 
+0

"클라이언트의 파일을 제어 할." 잠시 머리 주위를 돌며 왜 이것이 결코 가능하지 않을지 생각하십시오. –

+0

그래, 그건 아마도 나쁜 공식입니다 ...하지만 20 권의 사진을 클라이언트 권한으로 저장하거나 적어도로드하고 다른 곳에서 다운로드하도록 할 수있는 방법이 있어야합니다. 기본적으로 이미지를 업로드 할 때마다 기술적으로 가능합니다. – corazza

+0

예 ... 대부분의 브라우저는 이미 자동으로 정적 데이터를 캐시합니다. 보통 서버 설정이 잘되어 있지 않으면, 이런 일이 일어나지 않아도됩니다. –

답변

1

브라우저는 이미지를 캐시하지만 서버에 의해 만료 유형이 선택되며 유형에 따라 클라이언트의 캐시가 최신 인 파일에 대한 요청을 적절하게 처리하기 위해 서버에 따라 달라질 수 있습니다.

"제대로 작동"하려면 Express를 사용하십시오.

는 HTTP 캐싱에 대한 자세한 내용은이 시도 : http://betterexplained.com/articles/how-to-optimize-your-site-with-http-caching/

+0

대단히 감사합니다! – corazza

0
+0

그건 너무 많은 정보 일 뿐이지 만, 캐시는 프로세서의 내부 메모리라고 생각합니다.이 특별한 질문에 더 많은 "다채로운"설명이 선호 될 것입니다 ...하지만 그것은 유용한 정보원처럼 보입니다. 그것을 함께 읽으십시오. – corazza

+0

안녕하세요, 웹을 사용하려면 어떻게 작동하는지 알아야합니다. – stevebot

+0

에는 많은 수준의 캐시가 있습니다. CPU에서 L1/L3 캐시를 생각하고 있다면, WAAAAAAAY에서 너무 깊이 생각할 것입니다. –

0

. 주의하십시오, 그것은 아직 어디에서나 지원되지 않습니다.

관련 문제