Link to home
Start Free TrialLog in
Avatar of aniston
aniston

asked on

IMPOSSIBLE: Netscape ANIM flaw w/ Expire + GMT flaw

I have a banner rotation program, via a CGI-Perl script. A call is made to the ad script from my HTML webpage with the source: <img src="cgi-bin/nph-ads.cgi" width=468 height=60>

The script returns back the appropriate ad with the HTTP headers:
---
Last-Modified: Fri, 11 Sep 1998 01:54:00 GMT
Date: Fri, 11 Sep 1998 01:50:00 GMT
Expires: Fri, 11 Sep 1998 01:55:00 GMT
---
The graphic banners returned are mostly GIF anims.  
Strangely, when the GIF Anim banner has hit it's expired time (01:55), for "some reason" Netscape makes a call to the CGI script again and fetches another banner from it.  However, a non-animating banner doesn't do such a thing.

Sure the banner has expired and so doesn't exist in the cache anymore but I don't understand why Netscape makes that  automatic call to the cgi script; I didn't do anything but sit there and watch the GIF anim?  Is this a bug with Netscape and does this occur in IE?

One other question. The HTTP Header, Expires, which I send back is of course in GMT;  GMT is only good for establishing a universal "hour" between server and client.  The minutes, on the other hand, is established by using the client's minutes of the hour.  So if the client's time is: 04:30am, then the GMT time could be 00:30, where the 30 was established by the client's minutes.

Now as you can see from my output HTTP headers, my banners expire in 5 minutes from the time it was dished out to the client. So if the server time was 04:26 am then the Expires header will be set to expire at 04:31am.  

Now Netscape will "expire" the item once it has matched or exceeded the established Expires time from the server. Netscape's expire system appears to be based on the client's present time.  So if the client's time were 04:30am then the item will expire in 1 minute rather than the "full" 5 minutes.

Is there ANYWAY to be assured that the banner won't expire until the established time?

Thanks for help you can provide!
ASKER CERTIFIED SOLUTION
Avatar of mouatts
mouatts

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of aniston
aniston

ASKER

Just out of curiosity how would I go about in setting the client's minutes with the server's minutes?  Can Javascript maybe check the expire date or something and just use its SETMINUTES command?

Thanks for a great answer
Unfortunatly you don't have access to the expire time from Javascript and if you did I think you would find that it would be read only in the same way as the last modified date (which you can access).

To change the clients minutes as I mentioned previously requires a program that is initiated by the client. Typically some internet suites such as Turnpike include such a feature that allows clocks to synchronize but importantly it is the client that starts things off. (I was using such a beast at one time until the clock on my ISP went haywire and set my PC clock forward several days).

However if you are using Javasscript you can rotate you advert using this. To do this you execute some javascript using the onLoad event. This code should load your additional images in and then use Window.setTimeout to setup a call to another function with your five minute timeout. When this second function is called  it should swap the image (and href if click thrus are in use) to the a previsouly loaded image and then call setTimeout again for the next rotation.

Steve