iOS 加载网页, 加载本地html,  并缓存处理

iOS 加载网页, 加载本地html,  并缓存处理,第1张

笔者性懒,腹中无墨

app嵌html屡见不鲜, 本文描述加载简单的html网页。

首先说明需求: 有网的状态直接从获取html网页并且缓存, 无网状态先从缓存读取html, 若不成功则加载本地html文件, 并且将本地html文件写入缓存, 以便下次读取.

1.加载html网页, viewWillAppear或者viewDidLoad.

以下QAUrl均为html完整的url

2.若成功, 就在成功的代理方法里, 将网页端html写入缓存

3.不成功,在失败的代理方法里, 加载磁盘缓存或者本地html,其中isNetConnected是指是否连接到互联网, 默认是true,加载失败后置为false.

fileprivate var isNetConnected: Bool = true // 是否连接到互联网

4.同样,此次成功后,在代理方法里,将本地html文件写入缓存

5.代理方法的里很简洁

6.需要注意的是

(1)拼接缓存地址时, 如果html的URL类似于" http://10.0.4.2:82/app/qa.html ",不能作为地址拼接,否则无法缓存.

(2)笔者将拼接地址统一写成"/Caches/feedback.html",若有新的缓存,则地址被覆盖,不会导致缓存多个相同文件,一般无需清理或者导致内存警告

(3)本文不涉及缓存图片, js交互等问题

7.补充:

开发过程中,笔者又遇到了一个问题,有网的情况下,网页也可能出现加载不成功.这个时候如果只是加载网页就会什么都没有.所以在viewWillAppear或者viewDidLoad里应该有个判断

如果请求request返回的finish是true即成功,则加载html网页,不成功则加载缓存.

1、当我们没有引入外部css样式表的时候,一般情况下我们会在html里写样式,而又两种方式使我们常见的,第一种:

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />

<title>time元素</title>

</head>

<body>

<div style="height:300pxwidth:500pxbackground:#999"></div>

</body>

2、第二种写法:

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />

<title>time元素</title>

<style>

.all{

height:300px

width:500px

background:#999}

</style>

</head>

<body>

3、建立一个css样式表文件

4、存储在css文件夹中

5、在html文件中写入链接代码,代码如下:

<link rel="stylesheet" type="text/css" href="css/index.css" />

6、之后可以看到HTML文件的源代码傍边看到我们所连接的css文件,此时就连接成功。

src 是指向物件的来源。

href是指向需要连结的地方。

url是通用的 "连结" 的专业代名词,在 HTML语法里几乎不会使用。

url不是属性,src和href是属性,src用于替换当前元素,href用于在当前文档和引用资源之间确立联系,也就是说src引用的路径是img自己的路径,href引用的路径是要跳转到的地方。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6274838.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-19
下一篇 2023-03-19

发表评论

登录后才能评论

评论列表(0条)

保存