В моем веб-приложении вся страница поиска написана в XQuery. Запрос не просто находит и отображает результаты, но также записывает поисковый запрос в файл протокола (в eXist db это возможно с помощью функции file:serialize
).XQuery: вернуть что-то до завершения запроса
Однако может случиться так, что запись протокола занимает некоторое время. И, конечно, на эту задержку не должно влиять пользователь. Итак, я хотел бы сначала выводить результаты поиска, а затем обновлять протокол.
Я пытался поставить функцию протокола после возвращения содержания, как: (. Функция localfunction:write_protocol()
всегда возвращает пустую последовательность ()
)
return $search_results,localfunction:write_protocol()
Но это не работает , Содержимое $search_results
выводится только после завершения localfunction:write_protocol()
.
Есть ли что-нибудь, что я могу здесь сделать? (Я знаю, такие вещи проблематичны и на более процессуальных языках, таких как PHP.)
Если я правильно понимаю, это не совсем специфично для XQuery. Вы можете разделить свою страницу на два запроса, сначала вернуть быстрый, а вторую страницу - через AJAX. – wst