为什么当我在 iOS 上向后滑动时,Safari 会重新加载页面?

Why does safari reload the page when I swipe back on iOS?

我正在使用 Django 构建网页。当我想在 safari iOS 上测试项目时,我尝试使用向后滑动或后退按钮,但它没有执行正确的操作,而是重新加载同一页面。

我在另一个网页上测试了相同的滑动,它工作正常。

有谁知道为什么会这样以及如何纠正?


听起来 Django 可能在您的网页上有一些 javascript 正在调用 reload() 函数。如果在桌面浏览器上出现相同的行为,您可以轻松检查(在 Chrome 中:右键单击 > 检查)网页的源代码并查找 javascript 重新加载页面的函数。也许重新加载是 Django 插件的一部分,您可以在您的网站上将其禁用。

我知道为什么会出现这个错误。
我有一个调用 google.maps.event.addDomListener(window, 'load', initialize); 的函数 initialize(),在我有 map = new google.maps.Map(document.getElementById("map-details"), mapProp); 的初始化函数内部和对 API rest 的调用。在 API rest 的调用中,我有相同的代码 map = new google.maps.Map(document.getElementById("map-details"), mapProp);.
为了修复错误,我删除了初始化函数中的地图声明,并将其保留在 Api 调用中。
这是我见过的最奇怪的事情,都是 google 地图的错。

之前

function initialize(){
    map = new google.maps.Map(document.getElementById("map-details"), mapProp);
    $.ajax({
        ...,
        success: {
            map = new google.maps.Map(document.getElementById("map-details"), mapProp);
            ...
        }
    });
}

之后

function initialize(){
    $.ajax({
        ...,
        success: {
            map = new google.maps.Map(document.getElementById("map-details"), mapProp);
            ...
        }
    });
}