Those 2 things really have no place anywhere IMHO.
Those 2 things really have no place anywhere IMHO.
Also, being slow in IE is a good thing. Maybe people will switch to a better browser.
I also think it's a rare case where your bottle neck is speed of updating the dom. IMHO, having clean non-ugly js code is more important in most cases.
> Also, being slow in IE is a good thing. Maybe people will switch to a better browser.
I'm going to assume you're kidding.
> I also think it's a rare case where your bottle neck is speed of updating the dom.
Don't forget that your average user isn't on a brand new 2.4GHz Macbook Pro. The average computer is -slow-.
> IMHO, having clean non-ugly js code is more important in most cases.
Something that's fast, predictable, readable, and one line seems great to me. Being w3c compliant has nothing to do with how "clean" or "non-ugly" it is.
------------------------------------------------------
I'm not trying to debate you because I like getting into silly syntax wars. I'm trying to point out that no matter how ugly, noncompliant, un "future proof" something is, doing the simplest thing that works now and in the foreseeable future shouldn't be vilified. In this case, innerHTML is, and still will for a while, be a great way to insert elements into the dom.
I wasn't kidding in the least about IE. IE is a small minority on my webapp, thank goodness. If they get a degraded user experience, then that's MS's problem to fix.
"fast, predictable, readable, and one line" I guess you haven't got into all the issues with innerHTML. Tables, event handlers being borked, etc etc. html entities are ugly and have no place in code IMHO.
I guess some of it also comes down to the fact of mixing languages. I'd much rather write javascript in a single file. Having HTML fragments dotted around the place is, in my view, very very ugly.
<script>
var data = {time1: "Nov 5, 1955", time2: "Jan 1, 1970"};
function init() {
// Update the spans with the "ago"s
}
</script>
<span id=time1></span>
Using the DOM to store program data just doesn't seem nice to me.I disagree. I think the DOM is where data should be (look at meta tags, for example). Storing data in json style or xml-like attributes sound a bit like repurposing things.
Also, according to Steve Sounders, sprinkling script tags everywhere (which I suppose is the easiest way to get the json approach working in a site of arbitrary complexity) is not a good idea in terms of loading speed.
The thing with the json solution is that once we have things being ajaxed in, it becomes very hard to maintain the code. Has id="date7" been used? What if I add a comment while the "shoutbox" feature is updating?
Having the data in HTML would let us use something like Jquery's livequery and it would work regardless of how the data and how much data got into the page (plus we get the benefit of the no-javascript scenario I mentioned before).
The solution I posed was a simple inline javascript at the end of the html. The js data is generated at the same time as the html output. The IDs all match, and are used once.
I've never seen any issues with encoding in js, so I'm not sure what you mean about french text, regexps...
>> I've never seen any issues with encoding in js, so I'm not sure what you mean about french text, regexps...
Good for you. I hope you never see these types of bugs, they are nasty to troubleshoot.
http://microformats.org/wiki/datetime-design-pattern
<abbr class="foo" title="YYYY-MM-DDTHH:MM:SS+ZZ:ZZ">Date Time</abbr>
There are a lot of good alternatives proposed and debated on that page, so I'm confident that they've come up with the best way to represent the date in the DOM. Additionally, it's readable from Javascript-less environments and and uses only standard elements and attributes.