- From: Avi Naparstek <avinap@mail.com>
- Date: Sun, 9 Dec 2001 18:27:17 -0500 (EST)
- To: "'www-html@w3.org'" <www-html@w3.org>
Sorry to butt-in late (almost a year late..) on a party, but I might as well: I've been looking around for something around the lines of this for a while (a lean, clean way of including URL-Based content into inline HTML) and found zilch. My own considerations included: 1. reducing server-side load for reusable code-segments. This is of-course especially relevent when we have complex server-side scripts that generate a finally reusable HTML segment (say, a DB-Generated segment), and yet cannot be pre-rendered (I know this one was a bit far-fetched). 2. Reducing bandwidth usage in large reusale HTML segments (such as long navigation-bars, long <select> option-lists and in general any comlex form which might be reusable, such as search-engine interface-forms) You can see, both considerations don't explicitly call for CSIs, but rather for a smart caching method for HTML segments, without breaking up my pages into <IFRAME>s. So here it is (I guess I'm in a serious lack of self-esteem these days): Considerations and limitations: My solution is ASP-based, and incorporates using the MSXMLHTTP object on the client-side. I know it's proprietry (and not very popular), but for us just-make-the-damn-machine-work-after-I-invested-thousands-on-the-Microsoft-package people, it's clean and simple. The whole solution relies on the builtin caching of our client-side browser, so any cache limitations set up in the browser-options will take effect here. Also it is important to note that within files constituting CSIs, there should be a set content-expiration limit so your client WILL SOMETIME IN THE FUTURE get to reload the dynamic-yet-cached content of your CSI. Outline: The solution comprises of a client-side Javascrip function called CSInclude(url), which subsequently fetches the appropriate URL and inserts it in place where the function call was placed. Ta da: ====== function CSInclude(URL){ var xmlHTTP= new ActiveXObject("Microsoft.XMLHTTP"); xmlHTTP.open("GET",URL,false); // Increment semaphore CSILoading++; // Get stuff xmlHTTP.send(); document.write(xmlHTTP.responseText); } Sample code: ========== <html> <head> <!------ Define the CSInclude() function. This can be done inline or via a <script src=...> approach ---------> <script language=Javascript> function CSInclude(url){ ... } </script> </head> <body> The following is a client-side include: <hr> <script language=Javascript> CSInclude("http://www.mySite.com/myCSI/myFile.asp"); </script> <hr> ... </body> </html> - Party pooper Avi.
Received on Monday, 17 December 2001 10:19:02 UTC