On 26/04/2011 11:14, Cheetham, Anastasia wrote:

Antranig et al.,

I have pushed what I've been working on to the FLUID-4145 branch of my github 
repo. Hopefully, this will help you understand what I'm trying to accomplish, 
though all I have so far are sketches:

     https://github.com/acheetham/infusion/tree/FLUID-4145

The work is in the demos folder, in a subfolder called "instructional" (with tests in 
"tests/demo-tests").

The file jQTest.js is my experimentation with the techniques used by jQuery for 
their demos. InstructionalDemo.js is the beginning of a proper 
RendererComponent.

Some of the HTML files in the instructional subfolders are just older mock-ups. 
The main files are:
   "html/inlineEdit-default.html" - an example of a working demo that would be 
used as the source material
   "InstructionalDemoTemplate.html" - the template for the RendererComponent 
version

The HTML files indemo-tests/html stand in for a page in the website that would 
be built from the source material.


Hi Anastasia - first off, I would say a big risk is that the code for our demos is not properly namespaced so that it can all coexist in the same global object. I have been leading a push for our test cases at least to get this way but it would require a big initiative and sweep to make sure that all of our demo code is written to the same standards as framework code. Until then, I think the best option is to load the demo code in an iframe or single dedicated document as we do now. I think there was some conversation in IRC today also, distinguishing between "snippet code" and "best practices" code for demos.

To answer your earlier question:

And regarding my original question, so that I can understand the Renderer 
better: I know that simply inserting a
> <script> tag into a page can result in the script being executed (that's how 
jQuery works their UI widget
> demos, and I've replicated it with our demos). Is the Renderer deliberately 
doing something to avoid
this?


The behaviour you describe here isn't reliable. As you say, inserting a <script> tag into a document *can* result in the script being executed, with the operative word being "can" :) Depending on the exact circumstances of injecting it, and the particular browser in question, it may or may not execute, or may execute at some later time. Consult our Fluid Engage codebase for our best research into dynamically executing scripts in a reliable way, as part of the component we called the "Screen Navigator".

Looking at the codebase, the renderer doesn't do anything particularly special to treat <script> blocks differently as part of the markup - it's just that the underlying injection behaviour can't be relied upon.

You could look at the jQuery.globalEval function - collect together the scripts and script blocks you require, separate from the markup, and send them to this function. It may work better than it did in the Fluid Engage days.

_______________________________________________________
fluid-work mailing list - [email protected]
To unsubscribe, change settings or access archives,
see http://fluidproject.org/mailman/listinfo/fluid-work

Reply via email to