【发布时间】:2017-11-01 11:58:04
【问题描述】:
我有一个简单的网络应用程序,我想使用 JavaScript 对其进行更新。它实际上是从网站加载数据,但在这个演示中,您会看到它无法写入“Hello World”。虽然它可能不是“最佳实践”代码,但它重现了我在使用更复杂代码时遇到的问题。
如果我在 iOS 11 上的 Safari 中打开它,页面会显示“Hello World”。我可以刷新并做任何我想做的事。但是,如果我将页面添加到主屏幕(应用程序图标)并清理 Safari 缓存,则会发生以下情况:
我打开网络应用程序,一切正常。但是如果我关闭它,转到邮件并返回网络应用程序,它只会显示一个白屏 - 直到我从 Safari 中清除缓存...
此外,如果我反复关闭和打开网络应用程序,它最终会崩溃。
任何想法可能是什么问题?
test.html
<!DOCTYPE html>
<html>
<head></head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$.getScript("test.js", function(){update();});</script>
</body>
</head>
</html>
test.js
function update() {
document.write("<html>");
document.write("<head>");
document.write('<title>test</title><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, viewport-fit=cover"><meta name="apple-mobile-web-app-capable" content="yes">');
document.write("</head>");
document.write("<body>");
document.write("Hello World");
document.write("</body>");
document.write("</html>");
}
【问题讨论】:
-
它会向开发控制台写入一些错误吗?
-
我在系统日志中得到的是“断言失败:... libxpc.dylib”。但是没有其他我可以追踪到代码的东西。但至少我在 iPhone 模拟器上有相同的行为。
-
为什么需要 jQuery?您实际上所做的只是通过普通的老式香草 JS 写入文档...
-
这是因为我想重现 Web 应用程序的一般问题。该代码并不是真正有用,但这应该可以工作。
标签: javascript jquery ios safari