Hello,
I''m having problems with a piece of code requesting the same image serveral times from the server. What the code does is cutting out tiles from a image containing a collection of tiles.
Consider this simple (complete) test applet;
import java.awt.*;
import java.applet.*;
import java.awt.image.*;
class Tile
{
private int tile[];
public Tile(Image srcImage, int x, int y, int w, int h)
{
tile = new int[w * h];
PixelGrabber pg = new PixelGrabber(srcImage, x, y, w, h, tile, 0, 24);
try {
pg.grabPixels();
} catch(Exception e)
{
return;
}
}
}
public class ImageTest extends Applet
{
private Tile tile[];
public void init()
{
Image srcImage = null;
MediaTracker tracker
= new MediaTracker(this);
try {
srcImage = getImage(getCodeBase(), "tiles.gif");
tracker.addImage(srcImage, 0);
tracker.waitForAll();
} catch(InterruptedException e) {
System.err.println(e);
}
tile = new Tile[60];
loadTilesFromImage(srcImage);
}
private void loadTilesFromImage(Image tileSetImage)
{
int i,j,s;
for (s=0, i=0; i<3; i++)
{
for (j=0; j<20; j++, s++)
{
tile[s] =
new Tile(tileSetImage, j*24, i*24, j*24+24, i*24+24);
System.out.println("Grabbed tile " + s);
}
}
}
}
|
When this code is requesting images from a webserver, the requests made can be logged. IE5.5 makes these requests to my server while executing this piece of code, *ONCE*;
quote:
172.16.35.115 - - [02/May/2001:15:36:49 +0200] "GET /test/ImageTest.htm HTTP/1.1" 304 -
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/ImageTest.class HTTP/1.1" 304 -
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/Tile.class HTTP/1.1" 304 -
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 206 17474
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:50 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
172.16.35.115 - - [02/May/2001:15:36:51 +0200] "GET /test/tiles.gif HTTP/1.1" 200 19522
Netscape seems to post a lot fewer request, but there''s still more than just one, as you might be expecting.
Can somebody please enlighten me? Why is this happening? What can I do differently to prevent this rape of bandwith?
Launching this applet over a 28k8-modem connection, is really depressing...
/ dr-m