Sounds like a great project for node.js!
To clarify, node.js is a server side javascript implementation. What you want is a comet-based application (a web-based client application that receives server transfers, instead of the client constantly polling the server), which is for node.js.
Traditional ajax encourages your clients to query the server for data. This creates huge overhead for both the client and server. By allowing the server to push requests directly to the client without re-requesting the client, it solves the overhead problem and creates a more flexible interface. This is achieved by making asynchronous client connections on the server and only returning when the server has something to answer. As soon as the server responds with data, another connection is immediately created and held by the server again until the data is ready to be sent.
You can do the same thing with PHP, but I'm not so familiar with applications like PHP and Comet.
The number of users and the cost of hosting will be reproduced in files with DB options. If you plan on more than a few users, I will stick with the database. There are some NoSQL options available there, but in my experience, MySQL is much faster and more reliable than these options.
Good luck with your project!
http://en.wikipedia.org/wiki/Comet_%28programming%29
http://www.nodejs.org/
http://zenmachine.wordpress.com/2010/01/31/node-js-and-comet/
http://socket.io/ - abstracts the level of communication with your customers based on their capabilities ( LongPolling , WebSockets , etc.)
source share