- From: Eduardo Casais <casays@yahoo.com>
- Date: Fri, 13 Mar 2009 09:59:46 -0700 (PDT)
- To: public-bpwg@w3.org
My previous post on this topic lists.w3.org/Archives/Public/public-bpwg/2009Feb/0059.html is still relevant. Section 1.3.2 "Web pages delivered over HTTP which use either server-side or client-side processing". This explicitly excludes applications that have a scripting component both on the client and on the server (e.g. AJAX). Is this really intended? If not, then the correct formulation is "...which use server-side or client-side processing". Section 1.3.4 "Most best practices assume devices with basic XHTML, JavaScript, and CSS compliance". The level of compliance for CSS or Javascript is left open. It is important to clearly specify the type (XHTML basic? XHTML mobile profile? i-Mode XHTML? W3C XHTML?) and version of XHTML (many possibilities), or the capabilities (e.g. support for <script>, <object>, etc) considered. Thus, XHTML mobile profile support Javascript/ECMAScript only since version 1.1. Section 3.1.2 "If HTML5 is supported". Has the specification of HTML5 been finalized? How many browsers, commercially deployed, implement HTML5? I would eliminate explicit references to HTML5, and generalize the best practice to browsers that "support a client-side storage API" -- these may be proprietary, of course. Section 3.1.3.2 "Mobile Web applications should use these events to control the asynchronous replication of data back to the server". Once again, specific features of a future technology are presented not as a solution, but as a best practice. I strongly advise asking experts for information on how synchronization is achieved _currently_ -- any relation with SyncML? Section 3.3.2 "When automatic network activity is disabled, periodically prompt the user to make network requests". "Consider allowing the user to adjust the polling schedule and to control which activities are allowed to initiate network requests". This section seems to be mixing two cases: a) exceptional network accesses occurring at unspecifiable times (e.g. error reporting); b) periodic network accesses by well-understood operations (synchronization, polling). The first recommendation relates to (a), whereas the second one to (b); they should probably be separated into two different best practices. Section 3.4.2.2 "The working group is seeking recommendations for the best / most-commonly used tools to reference in this section". Do not use Minify; this utility is known to break applications, especially code written in Javascript. In general, avoid tools that rely upon pattern matching instead of proper lexical and syntactic analysis. Section 3.4.6 "In some circumstances performance is improved if JavaScript and CSS style sheet resources are included in the HTML page". Well, let us put it this way: the actual best practice is "Keep common scripts and style sheets as external resources, do not include them directly in pages". The practice 3.4.6, right from its formulation, makes it clear this is not a best practice, but rather an exceptional one ("consider...", "in some circumstances..."). In fact, unbundling common resources from markup is recommended because: 1) It is more manageable (modifications of style sheets and scripts are centralized, rather than scattered in application templates or individual pages). 2) It improves caching, between different devices (network cache), and between pages accessed by the same device (device cache). 3) Page sizes on mobile devices varies a lot (anything from 10K to 400K); scripts and styling reduce the payload available for markup. 4) In some devices, large pages are not cached (apparently, some versions of the iPhone do not cache pages larger than 25K). Bundling scripting and styling with the markup is usually done because 5) The content is produced by an authoring tool that automatically includes or generates styles and scripts directly inside the markup, and the tool cannot be configured to keep these elements separate. 6) The target browser cannot use external resources (example: many i-Mode devices cannot use external style sheets). 7) The target browser incorrectly retrieves external resources from the server, instead of looking them up in the local cache. Section 3.6.3.2 "The following is a typical configuration of application classes". Given the focus of the document on applications, which usually require some form of scripting and API, possibly AJAX, other typologies might be more relevant. In practice, one will often see "horizontal" partitions that distinguish, for instance, between Windows Mobile devices (HTML + JScript), Series60 (XHTML + ECMAScript), and Blackberries. Section 3.6.4 "Essentially this BP states that it is favourable to support 'Class 1' devices as defined above if at all possible". Given the focus of the document, the number of practices that somehow deal with scripting, AJAX, JSON, SVG, I wonder about the impact of this best practice. E.Casais
Received on Friday, 13 March 2009 17:00:27 UTC