Как уже отмечали другие, javascript не может асинхронно загружать файлы (в противном случае сайты с поддержкой javascript могут украсть любой файл с вашего жесткого диска). Лучшие подходы:
- Флэш-загрузчик, как уже предлагалось
- Или смоделировать Ajax-запрос, используя iframe
Подход iframe означает, что перезагружается iframe, а не страница, отображаемая вашим пользователям, так что для конечного пользователя опыт выглядит так, как будто это Ajax.
Если вы используете rails, что, как я понимаю, может быть связано с использованием прототипа и scriptaculous, есть плагин, который обрабатывает хитрые биты этого подхода для вас, который называется responseds_to_parent . Я сам реализовал это в приложении rails, но шаг 6 из этого блога выглядит как хороший пример того, как его использовать.