Polling AJAX client for P2P file sharing website
You are polling filecheckerhandler.ashx regularly at two-second intervals. The fact that such polling is implemented using recursion, with Filer() calling itself, is irrelevant to your performance problem.  You could improve the client code by using setInterval() instead of setTimeout(), but the overall system performance will be just as bad.

There are only three strategies to improve system performance:


Lengthen the polling interval.  Especially if no activity has occurred recently, activity is less likely in the near future, so the polling interval could be adaptive.
Improve the efficiency of filecheckerhandler.ashx.  The constraining factor is probably load on the server, rather than load on the client, so any efficiency gains on the server would likely make an impact.
Improve the efficiency of the communication protocol.  Each AJAX request is essentially a new HTTP request, with the only optimization being possible HTTP keep-alive, which might avoid the TCP handshake.  Consider a technique that is more suitable for client-to-server notifications, such as Comet.