Прежде всего, синхронные вызовы AJAX являются злом, потому что они блокируют весь механизм браузера JavaScript (о котором вы знаете).
Просто выполняет вызов асинхронно и отбрасывает результат, если он прибывает позже, чемчерез секунду мало?Если вы действительно хотите дождаться результата, вы все равно можете использовать setTimeout()
(jQuery для удобства, не требуется):
var result;
var xhr = $.ajax('/url', function(response) {
result = response;
});
setTimeout(function() {
if(result) {
//AJAX call done within a second, proceed with rendering
} else {
//One second passed, no result yet, discard it and move on
xhr.abort();
}
}, 1000);
При таком подходе вы не блокируете браузер, пока у вас его нетждать вызова AJAX.