I have a HTML list of about 500 items and a "filter" box above it. I started by using jQuery to filter the list when I typed a letter (timing code added later): $('#filter').keyup( function() { var jqStart = (new Date).getTime(); var search = $(this).val().toLowerCase(); var $list = $('ul.ablist > li'); $list.each( function() { if ( $(this).text().toLowerCase().indexOf(search) === -1 ) $(this).hide(); else $(this).show(); } ); console.log('Time: ' + ((new Date).getTime() - jqStart)); } ); However, there was a couple of seconds delay after typing each letter (particularly the first letter). So I thought it may be slightly quicker if I used plain Javascript (I read recently that jQuery's each function is particularly slow). Here's my JS equivalent: document.getElementById('filter').addEventListener( 'keyup', function () { var jsStart = (new Date).getTime()...
If you like the JSLint web interface, you can do File > Save Page As... and Save as type: Web Page, complete (in Firefox, doing it in Internet Explorer may be slightly different) to a local folder.
ReplyDeleteI change the name to jslint.htm to get it under 8.3 with no spaces.
It seems to work when saved locally.
Three things:
This may violate his license, although I leave the Copyright intact and don't modify any of his code, and technically my web browser already created a copy of his site on my local HD, so I'm not sure whether I'm in violation or not and I'm not a lawyer so I'll keep doing this until I get a letter telling me to stop.
The page may somehow still be able to send your code to the Internet, although the chance of it being possible is very remote. That said, the WSH or Rhino versions could probably send the code you submit to the Internet easier than a version in a locally saved web page could (if you're paranoid).
You'll get behind on any bug fixes or updates Douglas does. But the same thing applies to the WSH or Rhino versions if you don't update them regularly.
Yes:
ReplyDeleteOn windows use jslint.js + WSH
On systems that can run Rhino, use jslint.js + Rhino
Basically, you just need an embedded JavaScript compiler to run jslint.js.
JSLint can be run offline with either WSH or Rhino:
ReplyDeletehttp://www.jslint.com/lint.html#try
Edit: In the two years since this question was asked, JSLint has dropped support for Rhino and WSH. I encourage anyone interested in linting their code to also check out JSHint. It's a fork of JSLint which aims to be more flexible than the original, but also happens to support Node, Rhino, and WSH (in addition to browsers, of course).
If you're in a Java environment, you may find my jslint4java tool useful. It comes in a command line variant, and can also be integrated into an ant script. No GUI, because I suck badly at those. :-)
ReplyDeleteYSlow for Firebug has this feature built in
ReplyDeleteThere's another JS Linter, called JavaScript Lint, that has both online and downloadable command line versions. I use the downloadable version all time. I've been thinking about integrating it into SVN as part of a hook. I like it better than JSLint because it has more options and seems to detect more things. It can be configured to treat certain identifiers as predefined, for toolkits and the like, which allows it to check for usage of undefined variables, which I'm pretty sure JSLint can't do.
ReplyDeleteI have a tool for running jslint from the command line with either the Spidermonkey shell or Rhino. It also includes a plugin for VIM that allows you to press a button to automatically highlight any problem lines while editing a file:
ReplyDeletehttp://github.com/hallettj/jslint.vim/
If you use TextMate, I've made a bundle that runs JSLint and displays the output in a graphical window. It's all self-contained; nothing else needs to be installed to use it:
ReplyDeleteView JSLint.tmbundle at GitHub
Since JSLint itself is written in JavaScript, you can run it offline by copying the HTML and referenced JavaScript files locally. IE7's "Save As..." "webpage, complete" feature does this just fine.
ReplyDeleteCory Bennet has a good post on command-line JSLint. Much of your setup will be getting SpiderMonkey working. Not so bad if you're running Linux; a wee harder if you're using windows and CygWin. And here are some more discussion and comparison with Rhino run-times.
ReplyDeleteThere is a great Yahoo Widget:
ReplyDeletehttp://ajaxian.com/archives/jslint-multi
It is open source, if you are paranoid you can audit the code.
I have JSLint with Node.js validating code in my deploy scripts to ensure I don't accidentally push code that could break my site. It can save a lot of time handling customer support issues later.
ReplyDeleteIf you're using TextMate, the JSLintMate bundle has a simple interface, supports both JSLint and JSHint, and lets you set custom options in various ways (e.g., a config file per project, global options across all projects).
ReplyDeleteIf you already use ruby gems then you may install jslint gem in one command :
ReplyDeletehttp://rubygems.org/gems/jslint
Try the Google Closure Linter. It has more features than JSLint, too.
ReplyDelete