Showing posts with label Safari. Show all posts
Showing posts with label Safari. Show all posts

Thursday, July 19, 2007

Status of Safari and some comments about JavaScript and AJax

Sorry to say, but I have not been working with Safari for a while now. I did get a few comments pointing out some flaws in what I have done in the past. I am not too surprised, but luckily that is one of the best ways to learn and grow. I'll be activating those comments shortly.

As some background, I have tended to keep away from JavaScript in the past. The same holds true today, but at a lesser degree. The primary reason was cross browser compatibility and the fact that sometimes the JavaScript can get quite complex when you start to include all of the variations for past browsers and future ones.

One thing that has been winning me over is the JavaScript tools that are focused on prototype.js and the use of AJax. It also helps that the advanced features in CSS 2.0 and what will be coming with CSS 3.0 specifications will help reduce the need for scripting.

I have continuously been on the hunt for a good JavaScript based code set that allows table scrolling. I found a bunch of bad stuff out there. I found a few good ones too. One of which actually does work with AJax. I am wanting to post reviews and links to these tools for they are hard to find, and I think the information will be beneficial. The tool that works with AJax utilizes prototype.js which is great, but I have some enhancements that I am working on that will be increasing the performance by about a factor of 10 or greater (I think. Need to benchmark.) when dealing with rowsets greater than 1000 when the will be needing to deal with 40,000+, probably up to 100,000 rows... I know... I don't write the specs, just follow them :-(

For now I'll provide some links...

References:


http://www.sergiopereira.com/articles/prototype.js.html
  • Excellent independent documentation on prototype.js!
  • Using version 1.5.1

http://www.tetlaw.id.au/view/blog/table-sorting-with-prototype/
  • Excellent! Uses prototype.js and the code is very clean and readable.
  • Works with AJax
  • Sluggish with 1000+ rows. I have some fixes in the pipeline that once I get them tested I'll see about getting the code changes adopted.
  • Using version 1.0 with Prototype version 1.5.1 instead of 1.5.0_r
http://www.litotes.demon.co.uk/example_scripts/tableScroll.html
  • Works great with IE5, IE6, IE7, FireFox v2 (Windows and Mac OSx), and Safari
  • Low impact. Just call the function with passing the ID for your table and it does the rest.
  • Problem? It does not work with AJax. Works great with static HTML tables. Honestly, the code is a bit cluttered since it does not utilize prototype.js so it has to handle so much more internally.
  • Another problem appears to be that it was last updated in 2004.
  • Sad, it has strong potential if it was not for the lack of AJax support.

Thursday, October 05, 2006

Useful Links for Web Development on Safari

Below are some useful links for doing web development for Safari.

Links for Limited Safari Technical Documentation
http://developer.apple.com/internet/safari/safari_css.html - This is a good quick reference. Do not assume this list is the complete listing, for it is not. It dates back to around 2004 and has not been updated. To get the full supported list try the following link.

http://developer.apple.com/documentation/AppleApplications/ Reference/SafariCSSRef/Articles/StandardCSSProperties.html# //apple_ref/doc/uid/TP30001266-SW1 - This is the full supported listing of all CSS properties. Not sure when this was published, but it is more recent than the above link. There is also the CSS Extensions that are included in Safari: see the next link.

http://developer.apple.com/documentation/AppleApplications/ Reference/SafariCSSRef/Articles/CSSExtensions.html# //apple_ref/doc/uid/TP30001265-SW1 - These are the CSS Extensions. All two of them! ;-) Try clicking on the link “show TOC” for more information from Apple.

Miscellaneous Links
http://builder.com.com/5100-6371-1050180.html#Listing%20F - An alternative solution to dealing with different media types. Using the @media in your style sheets.

http://developer.mozilla.org/en/docs/Images%2C_Tables%2C_and_Mysterious_Gaps - Gaps around images


Links from Apple
http://developer.apple.com/internet/safari/index.html - Apple’s Developer Domain’s Safari support page

http://developer.apple.com/internet/safari/safari_css.html - CCS reference for Safari. Out of date, but useful for those elements that are on the list.

http://developer.apple.com/internet/safari/uamatrix.html - Mac OS, Safari, and WebKit version matrix.

NOTE: WebKit is also the engine that drives not only Safari, but also the Mac’s Dashboard, Mail, and many other applications. This website may contain all of the updated documentation that I have been looking for. Actually not, it is mostly driven to developmental focus of the WebKit itself.

http://www.ecma-international.org/publications/standards/Ecma-262.htm - The JavaScript standard that Safari (WebKit) is based upon.

CSS Related Links
http://meyerweb.com/eric/css/edge/ - CSS Edge

http://www.quirksmode.org/viewport/compatibility.html - Screen dimensions

http://www.quirksmode.org/dom/innerhtml.html - Benchmark - w3c DOM vs. innerHTML


JavaScript Related Links
http://webkit.opendarwin.org/blog/ - Has some information on JavaScript.

http://www.alexking.org/blog/2004/03/01/mac-browser-javascript-performance/ - Has comments about browser performance. John Strung comments that turning off all languages other than English (or One) "can significantly speed up Safari". He is ASKING if anyone has tried this, so mark this down as RUMOR.

http://www.codehouse.com/javascript/tips/random_letter/ - Creating random characters

http://www.quirksmode.org/css/overflow.html
Quirksmode CCS - Contains some interesting aspects to CSS
Quirksmode CCS - Not For N4 CCS
Quirksmode CCS - Tables CCS
Quirksmode CCS - JavaScript

http://www.javascriptkit.com/jsref/regexp.shtml - JavaScript Reference

Table Related Links
http://www.w3.org/TR/1999/REC-html401-19991224/struct/tables.html#edef-TD - Information on how percents are only a hint

http://www.w3.org/TR/1999/REC-html401-19991224/appendix/notes.html#h-B.5 - Table information

http://www.quirksmode.org/viewport/compatibility.html - Idea for adjusting width was found here.

http://www.workingwith.me.uk/articles/scripting/standardista_table_sorting - Table sorting
http://sourceforge.net/project/showfiles.php?group_id=162528 - Download for STS


HTML Links
http://www.w3.org/TR/1999/REC-html401-19991224/cover.html#minitoc - HTML v4.1 DOM specs

http://developer.apple.com/documentation/Cocoa/Conceptual/WebKit_DOM/index.html# //apple_ref/doc/uid/TP40001242 - DOM level 2 Specs

DOCTYPE Links
http://alistapart.com/stories/doctype/ - Good and informative, but note that it was written in 2002! Double check the current standards before using.

http://www.w3.org/QA/2002/04/valid-dtd-list.html - A detailed listing, but does not explain each usage.

http://www.w3.org/TR/html401/struct/global.html - Global Structure on an HTML document. Covers the DOCTYPE. Good information and a few more links.

http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/doctype.asp - MS’s perspective on DOCTYPE and IE v6.x.

http://msdn.microsoft.com/library/default.asp? url=/library/en-us/dnie60/html/cssenhancements.asp - CSS Enhancements for IE v6.x.
- This is also an excellent document that identifies what some (or all) of the differences are between compatibility mode and standard-compliant mode. It should be noted that standards-compliant mode is not measured against the current W3C standards, but the preliminary suggestions.


http://www.htmlhelp.com/reference/html40/html/doctype.html - Has a fairly good description as to the differences between Strict, Transitional, and Frameset. The comment about Quirk mode for IE v6.x is incorrect see the table above for the correct usages of the quirks mode with IE v6.x.