W3C home > Mailing lists > Public > www-html@w3.org > January 2001

Re: client side includes

From: Jan Roland Eriksson <jrexon@newsguy.com>
Date: Fri, 26 Jan 2001 01:13:19 +0100
To: www-html@w3.org
Message-ID: <64517t4utajof93r83eqpl5tsgl912rih5@4ax.com>
On Thu, 25 Jan 2001 09:13:38 -0800, "Daniel Hiester"
<alatus@earthlink.net> wrote:

>This hello world example is interesting, and I certainly would not have
>thought to take that aproach. But the reason why an entity is the correct
>thing to do is still confusing to me.

Maybe I'm able to recognize one of basic reasons for that confusion?

It seems to me that you may be looking at "browsers" as "a single
program that takes care of everything"

In reality, the ideal browser is nothing like that, instead it's a
conglomerate of several different computer programs (tasks, that has
different objects as reasons for their existence) and that just has been
written in a way that makes it possible for them to cooperate by using
some "secret messaging system" behind your back.

That "secret messaging system" may even at some times be realized
through the OP-system of your favorite computer, using semaphores for
synchronization purposes and/or "mailboxes with required replies", to
come up with a full synchronization of the components that makes up for
the visible workings of your browser.

So, in this "ideal" browser, we may find tasks that are geared up to do
different things like; an HTTP engine that handles requests for up/down
loading of i-net or local resources, a parser geared to create a parse
tree based on the available markup in received resources, a CSS
processor geared to decorate a parse tree based on style sheets received
over HTTP from a <LINK..., an image processor that sends properly
treated data into some buffer for later use, data received, processed
and buffered via "Plug-In de jour", a rendering engine that summarizes
info from all those available sources and generates a VDU display.

The "problem" that is really touched on in this thread is that "client
side includes" can not be suggested for inserts at just about any point
where various browser program components may find them.

You have mentioned the use of OBJECT markup to pull in other resources,
then please note that this would probably be all Ok if the referenced
resource is targeted for some other component in the browser;

But you can not, without creating serious problems for a markup parser
already in work, insert another resource that calls for processing from
stage one again, by the same parser.

You can use e.g. LINK, or OBJECT, to "pull in" resources to be buffered
for later use by other components of the browser, when they get their
semaphores or mailboxes set to a status that tells them it's their turn
to do their job, but don't upset the initial parsing process.

A full blown HTML doc pulled in through an OBJECT element is exactly
that type of "upset" that can not be allowed since it would arrive as an
"outsider" to the parsing process already in effect. (where is the state
to be saved? how to recreate a new state, valid for both after inclusion
processing?)

Since long time back there is a markup method defined (as in the
handling of entities) for how to signal "client side inclusions" much
similar to plain text macros, and as Arjun pointed out in another post
highly similar to the "#include std.lib" that most C programmers
probably have in their backbones already.

In the SGML world, the C thing of #include, is referred to as handling
of "entities", it's basically the same thing, replace a reference with
the expanded content of its definition. A "text macro" for short...

>I've decided to review the html 4.01 spec, to see if I could find the use of
>entities in a context...

Save your time, you can find some entities in the declaration subsets
they have published, other than that there's nothing to describe a
practical use...

>...but I only came out more confused...

So did I at one time; do yourself a favor and spend some time on the TEI
site that both I and Russell have pointed too in this thread.
It has one of the best "basic SGML" teachings you can find on the www.

From there you may be able to realize the "missed" kind of simplicity
that came to be so totally counterproductive among those that only had
"dollar signs" glued to their eyes.

>In simple language, what is an entity...

Something that fits straight into the "context" of the data stream being
parsed. (could be the counterpart of SSI, on the client side, if you
like :) Now we only need clients to support that old idea...

-- 
Rex
Received on Thursday, 25 January 2001 19:15:37 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 27 March 2012 18:15:45 GMT