RE: [SMARTY-DEV] Intelligent JavaScript handling

From: Date: Thu, 18 Mar 2004 00:49:24 +0000
Subject: RE: [SMARTY-DEV] Intelligent JavaScript handling
References: 1  Groups: php.smarty.dev 
Request: Send a blank email to php-smarty-dev+get-2220@lists.php.net to get a copy of this message
Excellent point, Scott. It also helps lead to abstraction and refactoring. Another point is that your editor/IDE will be able to recognize your javascript code properly--always. Still, just as parameterization has uses, so does meta-programming. Indeed, there are situations where a meta-replacement is simpler than parameter passing. This is especially true during the prototyping phase. Further, if you blindly paramaterized all replacements, you are likely to end-up sending MORE code (as you will have functions for each replacement) meaning a larger runtime for the client and more functional points that will require maintenance. I think both techniques are very useful and I tend to agree that having a mechanism that can support those context switches from within Smarty would be valuable. It doesn't have to be overloaded in the {literal} tag, though I'm not against that. I think messju and others are being TOO literal with that tag :) (compare PHP strings allowing embedded vars and also the prevelance of the backslash escape char) I think a {script} tag or what-have-you is less appropriate because the issue isn't related strictly to JS scripting but also appears in other situations. xo boots --- Scott Matthewman <smatthewman@planetoutpartners.com> wrote: > > -----Original Message----- > > From: Monte Ohrt [mailto:monte@ispi.net] > > Sent: 17 March 2004 16:33 > > > > Another option is replacing "{" with "{ldelim}" and "}" with > > > > "{rdelim}", > > since that wasn't mentioned. There usually aren't too many of > > them, one > > pair per javascript function or css definition. > > At the risk of veering off-topic, this particular thread is poitning > out to > me (as a developer who uses Smarty)) that people are programming > JavaScript > inefficiently. > > If you're using Smarty to write out fresh JavaScript all the time, > with > variable values droppen in where necessary, you would be better off > using > functions in your JavaScript function definitions, so that the only > lines > that need to have Smarty insert variables are the function *calls*. > > If you can get into this habit, then your resultant HTML+Javascript > will (a) > generally end up being smaller in size, if two of more blocks of JS > code can > be replaced with two calls to one parameterised function; and (b) > load > quicker, if you are then able to store your Javascript functions in a > separate file (i.e., with <script src="..."></script>) which browsers > can > then cache independently of however many HTML pages need to use the > same > function. > > It'll also make debugging code easier, as you know that the JS code > won't be > changing every time you generate a new page from your templates... ;) > > Just my twopenn'orth, as my grandmother used to say, > > Scott __________________________________ Do you Yahoo!? Yahoo! Mail - More reliable, more storage, less spam http://mail.yahoo.com

« previous php.smarty.dev (#2220) next »