Re: [whatwg] style sheet blocking scripts

2009-12-10 Thread tali garsiel

I understand now. Thank you for your answers.

From: hy...@apple.com
Date: Thu, 10 Dec 2009 12:15:50 -0600
To: jam...@google.com
CC: wha...@whatwg.org; bzbar...@mit.edu; i...@hixie.ch; t_gars...@hotmail.com
Subject: Re: [whatwg] style sheet blocking scripts




On Dec 9, 2009, at 4:10 PM, James Robinson wrote:2009/12/9 tali garsiel 
t_gars...@hotmail.com






Well, not completely.Regarding the first question- Webkit guys told me (on 
their IRC channel) that the don't block the parser and only block scripts that 
request visual information, so I'm still  confused.


Here's my understanding of the implementation inside WebKit currently:During 
parsing, WebKit does not block the parser on stylesheet loads, but does block 
external scripts from running until previously-encountered stylesheets have 
loaded.  WebKit does not suspend script execution on requests for visual 
information if stylesheets have not loaded (for example for inline scripts or 
in the case of stylesheets added dynamically after parsing has completed).  
WebKit does suspend parsing of the document on script loads, but has a 
speculative preloader to attempt to start fetches for resources past the 
script tag.

- James

This is accurate, although I'd add that we consider it a bug that we don't yet 
block the parser for inline scripts in addition to external scripts.
dave
  
_
Windows Live: Make it easier for your friends to see what you’re up to on 
Facebook.
http://www.microsoft.com/middleeast/windows/windowslive/see-it-in-action/social-network-basics.aspx?ocid=PID23461::T:WLMTAGL:ON:WL:en-xm:SI_SB_2:092009

[whatwg] style sheet blocking scripts

2009-10-28 Thread tali garsiel

Hi,

This is a quote from Section 4.2 of the spec:

A style sheet in the context of the Document of an HTML parser or XML parser 
is said to be a style sheet blocking scripts if the element was created by that 
Document's parser, and the element is either a style element or a link element 
that was an external resource link that contributes to the styling processing 
model when the element was created by the parser, and the element's style sheet 
was enabled when the element was created by the parser, and the element's style 
sheet ready flag is not yet set, and, the last time the event loop reached step 
1, the element was in that Document


And the section about parsing - the script tag says that before executing a 
script the parser must:

3. Spin the event loop until there is no style sheet blocking scripts and the 
script's ready to be parser-executed flag is set.


I have two questions:

1. As far as I know, Firefox and Webkit have a stall on demand behavior, 
where a stylesheet blocks a script only if the script asks from style 
information. According to the spec the style sheet always blocks a script, am I 
right?

2. Can you clarify the condition - the element's style sheet was enabled when 
the element was created by
the parser, and the element's style sheet ready flag is not yet set,
and, the last time the event loop reached step 1, the element was in
that Document

Does it mean the style sheet blocks scripts only if it's currently being parsed?


Tali
  
_
Windows Live: Make it easier for your friends to see what you’re up to on 
Facebook.
http://www.microsoft.com/middleeast/windows/windowslive/see-it-in-action/social-network-basics.aspx?ocid=PID23461::T:WLMTAGL:ON:WL:en-xm:SI_SB_2:092009


Re: [whatwg] a onlyreplace

2009-10-18 Thread tali garsiel

 dd0fbad0910161343s277083c7v4eee5197c15bd...@mail.gmail.com
Content-Type: text/plain; charset=windows-1255
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0


Some comments:

I think an optimization that enables the server to strip unnecessary content is 
a MUST.
It seems the browser will need to make a distinction between a regular request 
and a request invoked by a bookmark.
In case of a bookmark the server should not strip content so the browser must 
let him know that.

In a single page application AJAX updates can be originated in 2 roots:
1. The user clicks something in the navigation panel
2. The user clicks an action button inside the content panel

An example of use case #2 can be clicking a save button.
In this case the a tag is usually not used but a button, this means that 
other tags the  a should have the onlyreplace attribute.
In this example the URL should not be remembered by the history.

There are other cases of use case #2 where the URL should be remembered - like 
a next button on a page-able data grid.

I think this solution is good for changes of the entire content panel.
When a specific widget needs to update a data binding solution may be better.
This means the onlyreplace will probably be always the defaults.









 From: jackalm...@gmail.com
 Date: Fri, 16 Oct 2009 15:43:25 -0500
 To: simetrical+...@gmail.com
 CC: derer...@gmx.ch; wha...@whatwg.org
 Subject: Re: [whatwg] 

 A few public responses to issues/questions brought up in IRC: (thanks,
 Aryeh and Philip!)

 How is this better than  and lt;a targetgt;?lt;br /gt;gt; 
 =lt;br /gt;gt; 
 It's significantly better in multiple ways, actually.lt;br /gt;gt;lt;br 
 /gt;gt; 1. lt;iframegt;s, like frames before them, break bookmarking. If 
 a userlt;br /gt;gt; bookmarks the page and returns to it later, or gets 
 deeplinked via alt;br /gt;gt; search engine or a link from a friend, the 
 lt;iframegt; won't show thelt;br /gt;gt; correct content. The only way 
 around this is some fairly non-triviallt;br /gt;gt; url-hacking with 
 javascript, altering the displayed url as the userlt;br /gt;gt; navigates 
 the iframe, and parsing a deeplink url into an appropriatelt;br /gt;gt; 
 url for the iframe on initial pageload. @onlyreplace, on the otherlt;br 
 /gt;gt; hand, automatically works perfectly with bookmarking. The UA 
 stilllt;br /gt;gt; changes urls and inserts history appropriately as you 
 navigate, and onlt;br /gt
 ;gt; a fresh pageload it just requests the ordinary static page showing 
thelt;br /gt;gt; appropriate content.lt;br /gt;gt;lt;br /gt;gt; 2. 
lt;a targetgt; can only navigate one iframe at a time. Many/mostlt;br 
/gt;gt; sites, though, have multiple dynamic sections scattered throughout 
thelt;br /gt;gt; page. The main site for my company, frex, has 3 
(content,lt;br /gt;gt; breadcrumbs, and section nav) which *cannot* be 
combined to display aslt;br /gt;gt; a single lt;iframegt;, at least not 
without including a whole bunch oflt;br /gt;gt; static content as well. 
You'd have use javascript to hook the linkslt;br /gt;gt; and manually 
navigate the additional iframes. @onlyreplace, on thelt;br /gt;gt; other 
hand, handles this seamlessly - just include multiple ids in thelt;br 
/gt;gt; attribute value.lt;br /gt;gt;lt;br /gt;gt; 3. lt;iframegt;s 
require you to architect your site around them. Ratherlt;br /gt;gt; than a 
series of independen
 t pages, you must create a single masterlt;br /gt;gt; page and then a 
number of content-chunk mini-pages. This breakslt;br /gt;gt; normal 
authoring practices (though in some ways it's easier), andlt;br /gt;gt; 
requires you to work hard to maintain accessibility and such in thelt;br 
/gt;gt; face of these atrophied mini-pages. @onlyreplace works on full,lt;br 
/gt;gt; ordinary pages. It's *possible* to link to a content-chunk 
mini-pagelt;br /gt;gt; instead, but this will spectacularly break if you 
ever deeplinklt;br /gt;gt; straight to one of the pages, so it should become 
automatic forlt;br /gt;gt; authors to do this correctly.lt;br 
/gt;gt;lt;br /gt;gt; 4. lt;iframegt;s have dubious accessibility and 
search effects. I don'tlt;br /gt;gt; know if bots can navigate lt;a 
targetgt; links appropriately. I alsolt;br /gt;gt; believe that this causes 
problems with screen-readers. While eitherlt;br /gt;gt; of these sets of UAs 
can be rewritten 
 to handle lt;iframegt;s better (andlt;br /gt;gt; handle @onlyreplace 
replacement as well), with @onlyreplace theylt;br /gt;gt; *also* have the 
option of just completely ignoring the attribute andlt;br /gt;gt; navigating 
the site as an ordinary multi-page app. Legacy UAs willlt;br /gt;gt; 
automatically do so, providing perfect backwards compatibility.lt;br 
/gt;gt;lt;br /gt;gt;lt;br /gt;gt; Isn't if inefficient to request the 
whole page and then throw most oflt;br /gt;gt; it out? With proper AJAX you 
can just request the bits you 

Re: [whatwg] a onlyreplace

2009-10-18 Thread tali garsiel

bay117-w90f5b859cd291ac4e373b83...@phx.gbl
 

 dd0fbad0910180717q60e0c0f5l12e81a337af57...@mail.gmail.com
Content-Type: text/plain; charset=windows-1255
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0


When I said an optimization is a must I didn't just mean bandwidth.
Imagine this use case:
You have a page with a chart and a table showing data calculated from complex 
statistical analysis on your huge database.
Both the chart and the table have refresh buttons implemented with a 
onlyreplace 
Recalculating the chart when you refresh the table or vice verse will not be 
acceptable by your project manager :)
The server will need to know what is currently requested.
The solution is not necessarily to strip the content, but the server must get 
information of the updated parts and choose what to calculate.



 From: jackalm...@gmail.com
 Date: Sun, 18 Oct 2009 09:17:19 -0500
 Subject: Re: [whatwg] 
 To: t_gars...@hotmail.com
 CC: simetrical+...@gmail.com; derer...@gmx.ch; wha...@whatwg.org

 On Sun, Oct 18, 2009 at 6:45 AM, tali garsiel  wrote:
 Some comments:

 I think an optimization that enables the server to strip unnecessary content 
 is a MUST.

 Well, as I explained, it's not really a MUST. Doing an ordinary
 navigation requests an entire page, and without optimizations this
 does the exact same thing. You're not burning *more* bandwidth than
 normal; you're just slightly changing the effect of it.

 That said, such optimizations would be really useful, I agree. It
 could significantly cut down bandwidth use (on my company's site, the
 average request would drop from about 20k to about 1.5k). This could
 *really* improve site performance, and even perhaps be good for the
 overall net.

 It seems the browser will need to make a distinction between a regular 
 request and a request invoked by a bookmark.
 In case of a bookmark the server should not strip content so the browser 
 must let him know that.

 There's no need to make a distinction. Only requests with onlyreplace
 semantics trigger the special behavior. Typing an address into your
 browser won't add those semantics, nor will a bookmark; only links
 with @onlyreplace (or links on a page with  that
 don't override their own @onlyreplace with the empty string) carry the
 semantics.

 If you're talking about this in terms of optimizations, then the
 onlyreplace information would be carried by a request header. When
 the browser doesn't send this header, the server wouldn't strip
 anything down.

 In a single page application AJAX updates can be originated in 2 roots:
 1. The user clicks something in the navigation panel
 2. The user clicks an action button inside the content panel

 An example of use case #2 can be clicking a save button.
 In this case the  tag is usually not used but a button, this means that 
 other tags the   should have the onlyreplace attribute.

 I thought it would be interesting to be able to put @onlyreplace on
 forms, or perhaps form submission inputs.

 In this example the URL should not be remembered by the history.

 Then you should use ordinary AJAX to do so. @onlyreplace is supposed
 to be merely an optimization on normal navigation. The url *must* be
 remembered by the history.

 There are other cases of use case #2 where the URL should be remembered - 
 like a next button on a page-able data grid.

 Yup, exactly. A paged control is a great use-case! It's extremely
 simple to set up (just pass paging info in query params), and
 bookmarking works beautifully!

 I think this solution is good for changes of the entire content panel.
 When a specific widget needs to update a data binding solution may be better.

 Yeah, this is not meant to be a general replacement for AJAX. It just
 makes a particular set of common cases extremely easy. In many
 circumstances being explicit with javascript is still the better
 solution.

 This means the onlyreplace will probably be always the defaults.

 I'm not sure what you mean here.

 ~TJ
  
_
Keep your friends updated—even when you’re not signed in.
http://www.microsoft.com/middleeast/windows/windowslive/see-it-in-action/social-network-basics.aspx?ocid=PID23461::T:WLMTAGL:ON:WL:en-xm:SI_SB_5:092010


Re: [whatwg] a onlyreplace

2009-10-18 Thread tali garsiel

dd0fbad0910180717q60e0c0f5l12e81a337af57...@mail.gmail.com 

bay117-w9daba5e3a74376fb4bbfc83...@phx.gbl
 

 dd0fbad0910180935i6b07e025t14f4cc5aaacb3...@mail.gmail.com
Content-Type: text/plain; charset=windows-1255
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0


I'll try to fix my example.
The table button is not refresh but a next button that keeps track of the 
table navigation.

That is a valid use case , isn't it? (at least by your first suggestion). You 
still wouldn't want the server to do any heavy calculation except for the data 
that needs to be displayed.

I tried to find an extreme use case but even showing the navigation panels 
often evolves lots of server work.
Examples can be license and permission checks for an entire tree and parsing 
xml files containing tab contents.
Some of this work can be avoided by using session caching but some is not, 
mainly security checks.



 From: jackalm...@gmail.com
 Date: Sun, 18 Oct 2009 11:35:11 -0500
 Subject: Re: [whatwg] 
 To: t_gars...@hotmail.com
 CC: derer...@gmx.ch; simetrical+...@gmail.com; wha...@whatwg.org

 On Sun, Oct 18, 2009 at 11:22 AM, tali garsiel  wrote:
 When I said an optimization is a must I didn't just mean bandwidth.
 Imagine this use case:
 You have a page with a chart and a table showing data calculated from 
 complex statistical analysis on your huge database.
 Both the chart and the table have refresh buttons implemented with .
 Recalculating the chart when you refresh the table or vice verse will not be 
 acceptable by your project manager :)
 The server will need to know what is currently requested.
 The solution is not necessarily to strip the content, but the server must 
 get information of the updated parts and choose what to calculate.

 That's not really an appropriate use of @onlyreplace. Just put the
 chart and table in s with @name and use lt;a targetgt; to refreshlt;br 
 /gt;gt; them. That also automatically optimizes bandwidth, since the 
 subpageslt;br /gt;gt; that the chart and frame will live on contain *only* 
 them.lt;br /gt;gt;lt;br /gt;gt; (Preventing this sort of abuse might be 
 a good reason to do the onlylt;br /gt;gt; lt;basegt; can carry an id 
 list revision.)lt;br /gt;gt;lt;br /gt;gt; ~TJlt;br /gt;  
   
_
Keep your friends updated—even when you’re not signed in.
http://www.microsoft.com/middleeast/windows/windowslive/see-it-in-action/social-network-basics.aspx?ocid=PID23461::T:WLMTAGL:ON:WL:en-xm:SI_SB_5:092010


Re: [whatwg] framesets

2009-10-15 Thread tali garsiel

pine.lnx.4.62.0910130924420.25...@hixie.dreamhostps.com 

4ad4a1eb.8080...@artfulsoftware.com

pine.lnx.4.62.0910132224110.6...@hixie.dreamhostps.com 

4ad5438d.3090...@artfulsoftware.com

98038259-77f7-42fd-8a4a-097bb3e9e...@dartmouth.edu 

4ad57761.4060...@artfulsoftware.com

5ccfb3340910140023s65dbb96bq988b96b55707a...@mail.gmail.com 

4ad5f4a5.2040...@artfulsoftware.com
 

 a440ea080910150049t42482beav46a76a597ba29...@mail.gmail.com
Content-Type: text/plain; charset=windows-1255
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0



Nelson wrote:

There is a specific use-case (that has nothing to do with databases
 or bookmarking) that framesets solve better out-of-the box right now
 in most browsers: that of a panel-based layout that allows resizing
 and maintains UI state without flickering whilst loading content in
 different panel

 As an aside, there is a reason why AJAX has become so popular over the
 past few years: it solves the specific UI-reset issue that is inherent
 in full-page refreshes. Maybe there is room for a better,
 standard-based approach to solving this issue, but framesets ain't it.

I totally agree.

I think the described case is the main flow in web applications.
I think most web applications have exactly this panel based layout, where 
navigation loads only a some of the panels.
I think they all use AJAX. Iframes are very unpopular, and as you say AJAX is 
the best current solution.


I think there should be a standard based solution because:

1.Even when using libraries like prototype, AJAX does take some coding. Why 
should I use so much code for such a simple, main flow use case?

2.By looking at browsers code I see there is a lot of clever stuff going on 
when loading/unloading a document.
In the AJAX based solution this happens only once in the application life cycle.
It seems to me that dedicating a special syntax to navigation would help 
browsers to test the application main flow.


Tali






 From: flying.mushr...@gmail.com
 Date: Thu, 15 Oct 2009 09:49:58 +0200
 To: p...@artfulsoftware.com
 CC: wha...@whatwg.org
 Subject: Re: [whatwg] framesets

 Wow, what a tour de force; 78 messages and no progress.

 Peter, I believe the only reason the discussion has carried so far is
 because you are, actually, on to something. You just don't seem very
 aware that people are actually trying to pin down and solve the
 something and keep banging on about framesets being the cure-all,
 whilst ignoring other points.

 Here's (yet another) summary:

 1) Framesets have been deprecated for quite a long time. The reasons
 for the deprecation have been repeated ad nauseam, and very solid.

 2) There is a specific use-case (that has nothing to do with databases
 or bookmarking) that framesets solve better out-of-the box right now
 in most browsers: that of a panel-based layout that allows resizing
 and maintains UI state without flickering whilst loading content in
 different panels (this is, I believe, the something you're getting
 at).

 3) There are HTML5-conformant solutions available right now that allow
 you to replicate the above scenario with a little more work. The
 iframes solution with a bit of JS [1] [2] for handling the resizing is
 probably the easiest to implement, although an analogous solution with
 AJAX is probably the best available (which allows for deep-linking
 when this is desirable and doesn't automatically break bookmarking).
 You can also (if you wish) break bookmarking/the back button with
 these solutions, especially the AJAX one. There is also the CSS
 position: fixed solution that will be adequate for a large number of
 scenarios, or can complement the other two.

 4) As repeated many times, you don't have to use HTML5. Keep using
 HTML 4 Frameset [3] if you insist on using the frameset solution and
 care about validation. The documents within each frame can be HTML5.
 Or use HTML5 with framesets -- it won't validate but is guaranteed (by
 the spec) to work. Do expect to run into the usability problems
 inherent to frames, though.

 5) There is a known need for CSS to handle the above panel resizing
 use-case. That is a first-class CSS problem; don't expect the HTML
 spec to address that, especially not with a mechanism (framesets) that
 has many drawbacks and is deprecated for good reasons. For immediate
 solutions, see 3) and 4) above.

 6) For clarity sake, I'll repeat the point made several times:the
 bookmarking/navigation/security issue is *not* solved by framesets,
 and the slight hack to make this work (javascript's replace) as you
 suggest is neither exclusive to framesets nor (in the case of
 security) acceptable.

 As an aside, there is a reason why AJAX has become so popular over the
 past few years: it solves the specific UI-reset issue that is inherent
 in full-page refreshes. Maybe there is room for a better,
 standard-based approach to 

Re: [whatwg] framesets

2009-10-12 Thread tali garsiel
 relegate a perfectly sound use case to a cul-de-sac?
 
 It would be a bad idea to relegate a perfectly sound use case to a 
 cul-de-sac. But that's not what we're doing. The use case is still 
 handled fine, in a number of ways (e.g. iframes, Ajax-based navigation). 
 The feature we're relegating to a cul-de-sac is not perfectly sound.
 
 
 On Fri, 9 Oct 2009, Peter Brawley wrote:

 It's not your brief to decide what's beneficial for a client.
 
 Actually, it sort of is.
 
 
It conflicts with expected behavior.
 
 It does not conflict with what these users expect.
 
 Framesets actually do conflict significantly with what most users expect; 
 that's one of their problems.
 
 
 Framesets are part of the current HTML standard and should remain.
 
 Actually framesets were deprecated in 1998. They've been on the chopping 
 block for over ten years now. Their use is _so_ discouraged in HTML4 that 
 they are not even included in the Transitional DTD, they are relagated to 
 their own third-tier DTD.
 
 
 On Fri, 9 Oct 2009, Peter Brawley wrote:

 I quoted Andrew Fedoniouk 
 (http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2007-March/010186.html),
  
 There are use cases when frames are good. As an example: online (and 
 offline) help systems ...  In such cases they provide level of usability 
 higher than any other method of presenting content of such type.
 
 I've not seen a counterexample. Have you?
 
 I believe Andrew's statement to be incorrect. I would argue that the 
 usability of help sites based on framesets is horrible. For example, 
 search engines can't index into them (search is a critical part of help 
 systems), pages in them can't easily be bookmarked and URLs to them can't 
 be shared with other people (another critical part of help systems), and 
 using the open in new tab feature on index pages of help systems that 
 use framesets ends up breaking the frameset, making browsing multiple 
 aspects in parallel difficult.
 
 
 On Sat, 10 Oct 2009, tali garsiel wrote:
 
 1. Tabs and tree menu navigation is very common in web applications. Do 
 you agree with that assumption?
 
 Tabs are a media-specific presentation issue, and don't belong in HTML.
 
 Tree menu navigation is a use case we need to fix anyway, and will 
 probably do so in the next version of HTML. (We were going to do it in 
 HTML5, but had to punt because we couldn't get the detailed nailed down. 
 It's a hard thing to get right.) However, that's independant of frames. 
 The problem exists regardless of what the look is, one frame or many.
 
 -- 
 Ian Hickson   U+1047E)\._.,--,'``.fL
 http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
 Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'
  
_
Windows Live: Make it easier for your friends to see what you’re up to on 
Facebook.
http://www.microsoft.com/middleeast/windows/windowslive/see-it-in-action/social-network-basics.aspx?ocid=PID23461::T:WLMTAGL:ON:WL:en-xm:SI_SB_2:092009


Re: [whatwg] framesets

2009-10-12 Thread tali garsiel

 pine.lnx.4.62.0910121145480.25...@hixie.dreamhostps.com
Content-Type: text/plain; charset=windows-1255
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0


I guess it's not a HTML5 question but more a best practice question but ...
In case an application has navigation menus that cannot be reloaded each 
time.Only the content part should be reloaded.

What is a better

1. Using an iframe for the content and fixing bookmarking/back button
2. Using Ajax to update the content - a single document application

The issue with the later option is not user experience but browser performance.
Is never reloading the document, only updating the DOM harmful? (like caches 
wont be cleaned , garbage collection will not be done properly) .

Maybe it's browser specific but it also has to do with what browsers are 
supposed to support and test.




 Date: Mon, 12 Oct 2009 11:46:37 +
 From: i...@hixie.ch
 To: t_gars...@hotmail.com
 CC: wha...@whatwg.org
 Subject: RE: [whatwg] framesets

 On Mon, 12 Oct 2009, tali garsiel wrote:

 Does pushState apply to bookmarking?

 Insofar as bookmarking uses the document's current address, yes.
 (Bookmarking, being a UI feature, isn't defined in HTML5.)

 --
 Ian Hickson U+1047E )\._.,--,'``. fL
 http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
 Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
  
_
Windows Live: Make it easier for your friends to see what you’re up to on 
Facebook.
http://www.microsoft.com/middleeast/windows/windowslive/see-it-in-action/social-network-basics.aspx?ocid=PID23461::T:WLMTAGL:ON:WL:en-xm:SI_SB_2:092009


Re: [whatwg] framesets

2009-10-10 Thread tali garsiel

7c2a12e20910091119j2e527fc7x3e50e668342a9...@mail.gmail.com 

4acf873d.6000...@artfulsoftware.com 4acf8b51.80...@mit.edu 

4acf9e08.1020...@artfulsoftware.com

a9699fd20910091521p5d4bdd19l118e9699cbf74...@mail.gmail.com 

4acfcb99.1040...@artfulsoftware.com

6ea53250910091718md017d92xe32e244fca334...@mail.gmail.com 

4ad009b2.9040...@artfulsoftware.com
 

 6ea53250910101207l3c190722he405b983fc7ba...@mail.gmail.com
Content-Type: text/plain; charset=windows-1255
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0



I agree with Peter that this type of document navigation is an extremely common 
use case.
I think the use case includes navigation that loads only parts of the page, 
leaving the other parts static.

Almost all web applications I know have tabs on top and a tree on the left.

The idea is not repainting the tabs/tree etc on every click to keep a good user 
experience.

On the old days frames were used, then a tables + iframes.

Then iframes where considered bad design and I think most applications use divs 
+ css + Ajax.

In my experience this is not good either and causes serious performance issues.
I think its called single page design where the browser is never told to 
unload a document and reload another but just to keep updating the DOM using 
Ajax with huge chunks of HTML.

I think its important that the W3C specification should provide a good solution 
for this common case.


Regards, 
Tali


 From: herenva...@gmail.com
 Date: Sat, 10 Oct 2009 21:07:42 +0200
 To: p...@artfulsoftware.com
 CC: wha...@whatwg.org; t.bro...@gmail.com; bzbar...@mit.edu
 Subject: Re: [whatwg] framesets

 On Sat, Oct 10, 2009 at 6:12 AM, Peter Brawley  wrote:
 [lots...]

 Now, your last mail does describe the use-cases and their presumed
 requirements. Your wording is maybe a bit messy, but you have at least
 provided something worth discussing.
 Just to make sure I (and others) are understanding your proposal as
 intended, I'll try to paraphrase it in a more structured way (please,
 if I got something wrong, just let me know):

 Use case: displaying tree-based content (editable or not). (Note: I'm
 omitting the database aspect because it only matters on the server
 side: once on the client, the page doesn't care whether the data comes
 from/goes to a database, a collection of files, or anywhere else).
 Requirements:
 1) The display will use multiple subwindows, such as header,
 tree-view, and content (the names are arbitrary, hope they are
 descriptive and concise).
 2) The subwindows (or some of them) need to be independently scrollable.
 3) The subwindows must be resizable.
 4) The tree structure being displayed may be protected through some
 permission mechanism, so each user only gets to see or interact with
 the nodes such user has permissions for.
 5) The back button and bookmark features shouldn't work.

 So far, so good. Just if you had gone a bit further...
 That's a use-case with a series of requirements. This is a good
 beginning, but let's go to the next steps.
 Requirement justification: you haven't provided any (it's the
 requirements, not the use-case itself, what needs to be justified; a
 use-case is inherently justified by the real-world needs it
 addresses).
 For requirements 1 to 3, I can assume as an implicit justification
 something like this is the behavior every user would expect or
 anything like that, so let's move forward.
 For requirement 4, things are a bit weird: should authentication be
 handled on the server or on the client side? It seems that it has to
 be handled on the server side, so the nodes a user is not allowed to
 see should never be sent to the client (otherwise, the user could look
 at the source, hack through grease-monkey scripts, or override the
 permission system in many ways). If it's handled by the server, then
 it isn't relevant to HTML: HTML is a client-side language. If there is
 some need to handle (part of) the authentication issue from the
 client, you should provide more details and justify such need;
 otherwise the requirement can just be omitted as it wouldn't be
 relevant.
 Requirement 5 does need some justification. In my opinion, there is no
 need on your use case for these features (back button and bookmarks)
 to work, but is there any real need for them to break? If there is,
 please justify it; if there isn't, then that's not a requirement (it
 would just be the absence of a requirement for these features to
 work). Not needing them to work is *not* the same as needing them to
 break.

 Now, leaving aside the issues with the last two requirements, we can
 move forward. The next step would be to see which requirements are met
 by currently existing solutions, and which aren't. I will be ignoring
 for now Requirement 4 because it's unclear what the actual requirement
 would be.
 First, let's look at what the currently existing solutions are: I may
 be 

Re: [whatwg] framesets

2009-10-10 Thread tali garsiel

6ea53250910101207l3c190722he405b983fc7ba...@mail.gmail.com 

bay117-w2cc232231c30158f2fed583...@phx.gbl
 

 6ea53250910101551x5239027end5fc1b52cea81...@mail.gmail.com
Content-Type: text/plain; charset=windows-1255
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0



What I'm saying is based on my experience. I'v been involved in developement of 
large and complex web application for the last 9 years.

I know this discussion is getting too long but I believe it's because it 
touches a real problem.

Lets try to see where we disagree.

1. Tabs and tree menu navigation is very common in web applications.
Do you agree with that assumption?

Possible solutions for creating such navigation are:

1. Using one page + server side includes to repaint the navigation every time.
Not good.From my experience it burdens the server (it's not just images - its 
reading the XML that describes the tabs , calculating tree permissions , 
getting the whole tree data from the database etc) and causes a noticeable 
flicker.

2. Using frames - not good from the reasons you pointed out

3. Using iframes - not good from the same reasons

4. Using ajax - not good.From my experience browsers know how to load documents 
and don't react well in a situation where there is one document and every 
screen is built by updating the DOM of this document.I think the tests browser 
do do not include such cases and its not how they are meant to act.

So - for an extremely common use case there is no solution at all.

Again , please specify where you disagree.

Solution - I don't have a detailed solution but I think that the applications 
outer structure should be described by special tags which will behave well with 
bookmarking and the back button.
In outer structure I mean the part of the layout that consistently appears in 
each screen.


Tali
 




 From: herenva...@gmail.com
 Date: Sun, 11 Oct 2009 00:51:53 +0200
 To: t_gars...@hotmail.com
 CC: p...@artfulsoftware.com; t.bro...@gmail.com; bzbar...@mit.edu; 
 wha...@whatwg.org
 Subject: Re: [whatwg] framesets

 On Sun, Oct 11, 2009 at 12:15 AM, tali garsiel  wrote:
 I agree with Peter that this type of document navigation is an extremely 
 common use case.
 I think the use case includes navigation that loads only parts of the page, 
 leaving the other parts static.

 Almost all web applications I know have tabs on top and a tree on the left.

 The idea is not repainting the tabs/tree etc on every click to keep a good 
 user experience.

 On the old days frames were used, then a tables + iframes.

 Then iframes where considered bad design and I think most applications use 
 divs + css + Ajax.
 Peter's case is quite legitimate; I just asked for him to properly
 detail it so it can be properly discussed.

 Your reference to the old days, however, scares me a bit: on the
 old days there weren't many web applications, only web pages. If you
 are trying to argue for sites (made of pages or documents) that use
 s to keep the menus and headers static, I must stronly
 oppose that: while neglecting the back button, bookmarking and
 deep-linking features inherent to the web may be acceptable for some
 specific applications, this is absolutely a bad idea for classic
 pages: these elements do not take that much to load (and, if they use
 images, the browser will have them cached anyway), and all other
 advantages of using frames in this scenario (such as maintaining a
 single instance of the menu) are far better handled through
 server-side solutions such as includes. Being unable to deep-link to
 (or bookmark) a specific page on a site is a serious drawback; hence
 any site that considers breaking such capabilities must accurately
 weight the cost of the drawback against the value of the benefits it
 expects to achieve from it.
 If you have specific use-cases for Peter's proposal, you're welcome to
 bring them forward... oh, wait... what's Peter's proposal?

 I think its important that the W3C specification should provide a good 
 solution for this common case.
 You know, solutions don't come out of thin air: they are proposed by
 contributors to the lists like you, or me, or anyone else here. If you
 know the cases you want to have addressed, then I strongly encourage
 you to suggest a solution. The same advise I gave Peter applies: make
 sure to describe the use-cases you are addressing, detailing the
 requirements (and justifying them when they aren't 100% obvious),
 showing where current solutions fail, and showing that your proposal
 meets all the requirements.

 Honestly, I don't think that this process is ideal, but it's the way
 things are normally done here, and I can't think of a better process
 (otherwise I'd bring it forward). Some discussion on the abstract can
 be useful, but at the end of the day, only solutions that address
 use-cases and meet requirements make it into the spec.

 Finally, let me insist on a small detail that seems

Re: [whatwg] framesets

2009-10-10 Thread tali garsiel

6ea53250910101207l3c190722he405b983fc7ba...@mail.gmail.com 

bay117-w2cc232231c30158f2fed583...@phx.gbl
 

 6ea53250910101551x5239027end5fc1b52cea81...@mail.gmail.com
Content-Type: text/plain; charset=windows-1255
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0


Here is my suggestion - adding a type and navigation-state attributes to 
frameset in order for bookmarking , deep linking and back button to work.

Something like:

frameset type=navigation navigation-state=1  //here I put my tabs
frameset type=navigation navigation-state=1  //here I put the menu
   frame type=content  //the content
/frameset
/frameset

The browser will keep a match between the navigation-state of the navigation 
frames and the URL of the content frame.

use case:
The user clicks a tab - the navigation-state will change using JavaScript  
from 1 to 2, the content frame is reloaded.
The user clicks the bookmark button.
The browser puts in the bookmark storage the new content URL + the new state.

When the bookmark is invoked the browser loads tabs and menu frames and exposes 
the navigation state to them.It also loads the content with the new URL.
The tabs frame uses the state information to display the correct tab using 
JavaScript.
Something like history.navigationState.

The tab and menu frames might be in different navigation states.
There can be a combination of tabs in state 1 , tree in state 2 , content 
URL is x.
The browser will remember the combination when bookmarking.

Tali



 From: herenva...@gmail.com
 Date: Sun, 11 Oct 2009 00:51:53 +0200
 To: t_gars...@hotmail.com
 CC: p...@artfulsoftware.com; t.bro...@gmail.com; bzbar...@mit.edu; 
 wha...@whatwg.org
 Subject: Re: [whatwg] framesets

 On Sun, Oct 11, 2009 at 12:15 AM, tali garsiel  wrote:
 I agree with Peter that this type of document navigation is an extremely 
 common use case.
 I think the use case includes navigation that loads only parts of the page, 
 leaving the other parts static.

 Almost all web applications I know have tabs on top and a tree on the left.

 The idea is not repainting the tabs/tree etc on every click to keep a good 
 user experience.

 On the old days frames were used, then a tables + iframes.

 Then iframes where considered bad design and I think most applications use 
 divs + css + Ajax.
 Peter's case is quite legitimate; I just asked for him to properly
 detail it so it can be properly discussed.

 Your reference to the old days, however, scares me a bit: on the
 old days there weren't many web applications, only web pages. If you
 are trying to argue for sites (made of pages or documents) that use
 s to keep the menus and headers static, I must stronly
 oppose that: while neglecting the back button, bookmarking and
 deep-linking features inherent to the web may be acceptable for some
 specific applications, this is absolutely a bad idea for classic
 pages: these elements do not take that much to load (and, if they use
 images, the browser will have them cached anyway), and all other
 advantages of using frames in this scenario (such as maintaining a
 single instance of the menu) are far better handled through
 server-side solutions such as includes. Being unable to deep-link to
 (or bookmark) a specific page on a site is a serious drawback; hence
 any site that considers breaking such capabilities must accurately
 weight the cost of the drawback against the value of the benefits it
 expects to achieve from it.
 If you have specific use-cases for Peter's proposal, you're welcome to
 bring them forward... oh, wait... what's Peter's proposal?

 I think its important that the W3C specification should provide a good 
 solution for this common case.
 You know, solutions don't come out of thin air: they are proposed by
 contributors to the lists like you, or me, or anyone else here. If you
 know the cases you want to have addressed, then I strongly encourage
 you to suggest a solution. The same advise I gave Peter applies: make
 sure to describe the use-cases you are addressing, detailing the
 requirements (and justifying them when they aren't 100% obvious),
 showing where current solutions fail, and showing that your proposal
 meets all the requirements.

 Honestly, I don't think that this process is ideal, but it's the way
 things are normally done here, and I can't think of a better process
 (otherwise I'd bring it forward). Some discussion on the abstract can
 be useful, but at the end of the day, only solutions that address
 use-cases and meet requirements make it into the spec.

 Finally, let me insist on a small detail that seems to go unnoticed
 regardless of how many times it has been repeated in the last hours:
 HTML5 updates/replaces the Transitional and Strict doctypes of HTML4.
 HTML4 Frameset isn't being updated as of now, and it stays valid,
 legitimate, and current. Using a HTML4 Frameset master page that shows
 HTML5 documents on its frames is valid and conformant

[whatwg] The removal of datalist

2009-08-29 Thread tali garsiel

Hi,

Will this element come back?

From my experience web applications always contains:
1. A tree control
2. A sortable data grid with a data provider
All js libraries like dojo , ext js etc have this elements(and of course all 
libraries like swing).

If such a basic GUI element will not be included in HTML , then web application 
authors will still need to use a js widget library.
This library will still need to do crazy tricks and workaround to build 
controls which look like the real thing.

I think HTML should provide the basic controls + some way for extending them , 
otherwise we go back to where we started.

Tali

_
More than messages–check out the rest of the Windows Live™.
http://www.microsoft.com/windows/windowslive/