Перезагрузка страницы через Ajax, когда окно location=self.location не работает

Просто замените return в вашем get_all_files на yield. Это позволит вам перебирать каждый файл.

def get_all_files(to_download):
    for year in [2000, 2001, 20002, 2003]:
        content = download_file(year)
        result = retrieve_file(content,
                               to_download,
                               'file-%s.pdf' % year)
        yield result
9
задан Renaat De Muynck 10 February 2017 в 10:43
поделиться

3 ответа

window.location = self.location;

Этот JavaScript выполняется.

Когда это выполняется, браузеру говорят заменить значение window.location с новым значением. Не все браузеры будут реагировать тот же путь здесь.. Некоторые будут, вероятно, работать, как Вы ожидаете, но другие станут умными об этом и сравнят два значения. Браузер знает, какая страница он идет, и он знает, что Вы просто просите его переходить к той же странице.

Кэш браузера

Браузер даже имеет копию Вашей текущей страницы в кэше. Это может говорить с сервером и спросить, допустима ли страница, которую это имеет в кэше все еще. Если кэш допустим, он может решить не вызвать перезагрузку страницы. Негласно, это происходит с HTTP-заголовками. Браузеры и серверы могут связаться по HTTP во многих отношениях. В этом случае Ваш браузер отправляет быстрый запрос к серверу, говоря что-то вроде этого:

GET /stackoverflow.com/posts/196643/index.html
HTTP/1.1
Host: www.stackoverflow.com
User-Agent: Mozilla/5.0
If-Modified-Since: Sun, 12 Oct 2008 20:41:31 GMT

Это называют, условное выражение ПОЛУЧАЮТ запрос. Путем высказывания If-Modified-Since говорит браузер, "Дайте меня, что файл, но только если он был изменен с прошлого раза, когда я видел его".

Короче говоря, Вы явно не сказали браузеру перезагружать страницу.

Вот то, как Вы можете:

location.reload( true );

"Истинным" является дополнительный параметр для принуждения перезагрузки. Браузер даже не посмотрит на кэш.. Это просто сделает, как Вы говорите.

20
ответ дан 4 December 2019 в 10:06
поделиться

Движение к привязке на странице - который является что # имеет значение - не требует перезагрузки.

1
ответ дан 4 December 2019 в 10:06
поделиться

Если бы они вручили мне эту конкретную задачу на работе, то я ответил бы ей ударом на удар для разработки. Если мы не говорим о защищенной странице или входе в систему OpenID, Вы не должны открываться форма входа в систему или входа в систему. Пользователи должны учиться искать это https: наверху их страницы, и никогда не регистрируются, если они не видят его.

0
ответ дан 4 December 2019 в 10:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: