Используйте обертку <iframe>
, чтобы обернуть ваши страницы. Затем, когда у вас есть AJAX-запрос, передайте его в оболочку и перейдите по <iframe>
. Это даст вам возможность получить совершенно асинхронный запрос при сохранении отзывчивости приложения.
Конечно, вы также не меняете адресную строку и не убиваете своего SEO, но это компромисс для плохой архитектуры. Тот факт, что ваша функция отслеживания кликов занимает около секунды, просто ужасен. Возможно, вам следует запустить его в асинхронном потоке на сервере и просто передать данные клиенту в отдельном потоке (System.Threading
). Это облегчит проблемы, с которыми вы столкнулись.
В противном случае вы можете иметь асинхронный , надежный или "не взломанный вместе" . Выберите любые два.
EDIT
Боже мой, вы также можете запустить запрос AJAX в виде всплывающего окна:
window.open(url,'ajax','height=0,width=0');
Это все еще не очень хорошая идея, но она будет работать.