Вы можете использовать маяк .Это гарантирует, что оно не будет прекращено закрытием страницы (хотя это произойдет, если вы закроете сам браузер).Однако, с другой стороны, вы не получите ответ на ваш сценарий;обычно он зарезервирован для запросов только на запись, когда подтверждение или дополнительные данные на стороне клиента не требуются.
navigator.sendBeacon(url, data);
Однако есть еще несколько браузеров, которые не поддерживают его .
Если вам нужен ответ, альтернативы AJAX (или переходу страницы) нет.
Однако ваша работа submit
не должна быть прервана, если вы ее запросите.Конечно, вы не получите ответ, если пользователь отмотает вашу страницу, но колба должна завершить работу.Попробуйте это:
import time
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
with open('woo1', 'w') as w: pass
time.sleep(60)
with open('woo2', 'w') as w: pass
return "Hello World!"
Перейдите к http://localhost:5000 и затем, пока не истечет минута, отойдите;через минуту вы должны найти в своем каталоге woo1
и woo2
.