Als ich Webview verwendet habe, habe ich eine Seite geöffnet, und wenn dann ein 404-Fehler aufgetreten ist, wurde die Fehlerseite angezeigt.
Während der Verwendung habe ich festgestellt, dass beim Öffnen einer Seite insgesamt 7 Anfragen gestellt wurden Welche 2 angeforderten Ressourcen wurden zurückgegeben? Es ist 404, was bedeutet, dass die Seite geladen werden kann, aber die Fehlerschnittstelle weiterhin angezeigt wird.
Ich möchte also fragen: Gibt es beim Öffnen einer http-Seite nicht nur eine Netzwerkanfrage? (Würde es nicht nur einmal 200 oder 404 oder etwas anderes zurückgeben)?
会有很多次,包括
文档: html 文件本身
资源: 图片 视频 js文件 css文件
数据: ajax请求
等等
浏览器 F12 会看得很清楚
一个页面包括很多部分,如果你的页面中包含图片、样式文件和从后端拉取的数据等。就不是请求一次了,会请求很多次。
一般webview判定加载失败主要是判断获取html文档部分是否是200,加载完成html之后还有很多需要进行异步加载的地方,比如获取css、js、图片等数据,重写onLoadResource可以看到加载了哪些资源文件。至于显示错误页面还需要看服务器的设置,有的服务器会针对404、502之类的错误进行重定向让你跳转到指定的页面上,而不是webview中自带的错误页面,这种页面一般是服务器那边的问题,和本机有没有正确响应页面没什么关系。