AI
Animation
CGI
Compression
Console
Database
Debug
Dialects
Dialogs
Editor
Email
Encryption
Extension
External Library
File
File Handling
Files
Financial
FTP
Game
Games
Graphics
GUI
HTML
HTTP
Internet
LDC
Markup
Math
Module
Network
Networking
None
Other - Net
Parse
Patch
Printing
Protocol
Rebol
Scheme
Scientific
SDK
Security
Shell
Sound
SQL
TCP
Testing
Text
Text Processing
UI
User Interface
Util
Utility
VID
Visualization
Web
Win API
X-File
XML
rebol [
	Title: "never cache"
	File: %never-cache.r
	Date: 22-Nov-2002
	Version: 1.0.2
	Needs: []
	Author: "Anton Rolls"
	Language: 'English
	Purpose: {function that outputs rebol and javascript code to ensure a page is always freshly
		loaded from the server}
	Library: [
		level: 'advanced
		platform: 'all
		type: 'function
		domain: [html web cgi]
		tested-under: "at least Rebol/View1.2.8 on WinXP, IE6.0"
		support: none
		license: 'mit
		see-also: none
	]
	Usage: {
	make sure never-cache.r is run before using the never-cache function.
	Our system uses Brian Hawley's require function, so I recommend the following
	require line in the server.r script:

		require %public/lib/never-cache.r		
	
	then just include the line:
	
		print never-cache
		
	somewhere in your rebol cgi's (preferably near the top, before images etc.)}
	ToDo: {
	-
	}
	History: [
		1.0.0 [10-Oct-2002 {First version} "Anton"]
		1.0.1 [27-Oct-2002 {now simply returns a string of code, no longer print's it for you, this
			allows it to be used with current implementation of embedded rebol scripting} "Anton"]
		1.0.2 [22-Nov-2002 {increased default delay time to 1500} "Anton"]
	]
	Notes: {
		This function assumes that it will be used in a rebol server-side cgi script,
		and that javascript is enabled in the client browser.

		I saw this as another way to force a reload from the server

				location.reload(force);

	}
]

never-cache: func [{print some code such that the page it appears will always be 
	loaded fresh from the server}
	/delay ms "minimum time in milliseconds after which the page will be forced to reload (default: 1000 ms = 1 second)"
	/debug "write the contents of some variables into the document"
	/local days seconds-per-day time seconds milliseconds
][
	if not delay [ms: 1500] ; set default value
	
	; calculate time in milliseconds, in same format as javascript's Date.getTime()
	days: (now - 1-jan-1970) ; this doesn't account for timezone (now/zone) - see below
	seconds-per-day: 24.0 * 3600
	time: now/time/precise
	seconds: (days * seconds-per-day) + ((time/hour * 3600) + (time/minute * 60) + time/second)
	seconds: seconds - to-integer now/zone ; account for timezone
	milliseconds: seconds * 1000.0

	rejoin [
		{^/}
	]
]


            
            
        
Copyright © 2018 Rebol Software Foundation