tl; dr - iOS 5上的Safari缓存非常困难,它打破了我的网站.
我正在努力解决iOS 5中的Safari浏览器处理后向缓存的问题,他们称之为"页面缓存".这里描述的方式非常好地解释了这种行为.
很简单,页面缓存使得当你离开页面时我们"暂停"它,当你回来时我们按下"播放".
这会导致整个网站出现问题.使用后退按钮时,大多数其他浏览器会以加载状态显示页面.不是iOS 5上的Safari,它会显示您上次离开时的页面.一个简单的例子是禁用提交按钮.如果我使用Javascript来禁用提交按钮,然后提交表单,当您单击后面的提交按钮仍将被禁用.这在其他浏览器中是一个问题,包括Safari的桌面版本,但是通过将onload事件处理程序设置为空函数来解决它.我相信这告诉浏览器使缓存无效,因为在该函数中可能发生了一些重要的事情.这个hack似乎不适用于iOS 5上的Safari.
以下是问题归结为最基本的问题.加载test.html时,您将看到文本"原始文本".当您单击该链接时,该文本将更改为"更改文本 - 转发到下一页",然后在3秒内您将转发到test2.html.在所有浏览器中,一切都很好.在所有其他浏览器中,当您单击后退按钮时,您将看到的文本是"原始文本",但在Safari for iOS 5上,您将看到"更改文本 - 转发到下一页".
有关如何处理这个的任何建议?
这是一个简单的例子
的test.html
<script>
function changeText() {
el = document.getElementById("text");
el.innerHTML = "Changed text - forwarding to next page";
setTimeout("forward()",3000);
}
function forward() {
document.location.href = "test2.html";
}
</script>
<div id="text">Original Text</div>
<a href="Javascript:changeText()">Click Here</a>
<script>
window.onunload = function(){};
</script>
Run Code Online (Sandbox Code Playgroud)
test2.html
<div>Click back button</div>
Run Code Online (Sandbox Code Playgroud)
这是使用表单的第二个示例.这是我的应用程序如何工作的一个简单示例.当您导航回formtest2.asp时,您应该看到已发布的表单值,div文本应该是原始的.
formtest.asp
<form method="post" action="formtest2.asp">
Test: <input type="text" name="test"/>
<input type="submit" value="Submit"/>
</form>
Run Code Online (Sandbox Code Playgroud)
formtest2.asp
<script> …Run Code Online (Sandbox Code Playgroud) 我希望使用 Serilog 将结构化日志数据写入 Amazon S3 存储桶,然后使用 Databricks 进行分析。我以为 Serilog 会有一个 S3 接收器,但我发现我错了。我认为也许将文件接收器与其他东西一起使用可能是问题所在,但我不确定那会是什么样子。我想我可以在我的 EC2 实例上安装 S3 存储桶并写入数据,但我被告知这是有问题的。你们中的一位好人能给我指出正确的方向吗?