javascript - 为什么提交在移动浏览器上不起作用?
问题描述
我开发了一个查询 NASA 图像 API 的网站。该网站在我的桌面浏览器上运行良好。但是,当我尝试从手机搜索时,它会卡在刷新然后崩溃。知道我该如何解决这个问题吗?
链接是:https ://searchnasa.herokuapp.com/
我所有的javascript都写在functions.js文件中,你可以通过源代码查看。
解决方案
我在 MacOS Safari 上收到以下错误:
此网页已重新加载,因为它正在使用大量内存。
当前对每个生成的图像有两个请求:
- 图片缩略图(https://images-assets.nasa.gov/image/PIA07081/PIA07081~thumb.jpg)
- 图片补充链接(https://images-assets.nasa.gov/image/PIA07081/collection.json)
[
"http://images-assets.nasa.gov/image/PIA07081/PIA07081~orig.jpg",
"http://images-assets.nasa.gov/image/PIA07081/PIA07081~small.jpg",
"http://images-assets.nasa.gov/image/PIA07081/PIA07081~thumb.jpg",
"http://images-assets.nasa.gov/image/PIA07081/metadata.json"
]
NASA 图像和视频库实施collection.json
并未提出这些请求。因此,我相信这些请求会导致您的问题。您应该延迟这些请求,直到用户打开图像详细信息模式之后需要数据。
通过假设图像文件始终采用相同的格式,您甚至可以走得更远。请注意,不同的图像大小只是~[orig|small|thumb].jpg
图像路径上的后缀。
推荐阅读
- php - Laravel 5.7 VerificationController 不扩展应用控制器
- android - 在 Viewpager 中使用具有相同 ViewModel 的相同 Fragment 的多个实例时出现问题
- node.js - MongoDB 错误:连接 EINVAL 0.0.0.123:27017 - 本地 (0.0.0.0:0)
- spring-boot - Spring Boot 应用程序中的 Ldap 身份验证和 ouath2(访问令牌和刷新令牌生成)集成
- reactjs - 使每个道具标题不同的颜色
- postgresql - Postgres:将常见查询保存为表属性?
- php - PHP - API GMAIL - 检查用户是否存在
- javascript - 两个绝对 div 顶部和底部
- r - 如何通过R中数据框中的列表运行for循环
- angular - 如何在 Angular5 应用程序中使用 in-memory-web-api 和真实服务 API