forms - 如何创建一个带有 url 输入的表单,该表单重定向到 pagespeed score/insights 或使用 ajax 显示它
问题描述
是否有可能做到这一点?理想情况下,使用 ajax 在同一页面中返回报告?示例用户将www.mywebsite.com添加到该字段,然后返回 pagespeed 报告。如果不可能,则重定向到 Pagespeed 结果页面。
解决方案
您在这里有几个选择。从最简单到最难(在我看来,从“最差”到“最好”的解决方案)。
- 将 Page Speed Insights (PSI) 测试页面添加到您网站上的 iframe。然后,您可以将该 iframe 的 URL 更改为
https://developers.google.com/speed/pagespeed/insights/?url=yourwebsite.com
并将其操作为?url=yourwebsite.com
您想要的任何内容。
这可能违反了 Google 的服务条款,也是一种糟糕的用户体验,但这是实现它的最简单方法。如果您决定这样做,我会让您调查该选项。
- 将用户重定向到新选项卡。因此,只需
<a target="_blank" href="https://developers.google.com/speed/pagespeed/insights/?url=yourwebsite.com">view your report</a>
单击按钮即可通过 JS 执行或重定向。
这又不是一个很好的选择,因为人们正在离开您的网站,但至少这不会违反 Google 的服务条款。
就时间与灵活性而言,这是您的最佳选择。您向 API 提供 URL,它会返回一个 JSON 响应,其中包含它收集的所有指标和评分。
请注意,PSI 位于 API 的第 6 版上,应该很快就能用于一般用途。
显然,这是一项更多工作,但值得付出努力,因为您可以随意设计所有样式。
- 在您自己的服务器上安装驱动 PSI 的引擎 Lighthouse。
您可以在此处找到 Lighthouse 存储库。请注意,您需要知道如何使用节点,了解 puppeteer 很有用,并且您需要合理数量的服务器管理知识才能使 chromium(用作运行测试的无头 Web 浏览器)正常工作和链接。
在这个阶段,您拥有完全的控制权,可以编写自己的测试、评分标准等。您还可以运行服务器允许的尽可能多的测试。如果您想要这种级别的控制和自由,那么这是最佳选择。但是,请准备好在此解决方案中投入大量时间!
推荐阅读
- ios - 使用 react-native 在 IOS 中扫描 GS1 Databar Barcode
- c++ - C++11:无序实例成员初始化的不一致警告
- javascript - 尝试注册我的组件时组件定义无效
- android - 为什么在使用 stateListAnimator 属性时点击效果会消失?
- python - 为什么 discord.py 将消息转换为数字时出错
- javascript - AJAX,PHP 调用 HTTPS SSL CERTIFICATE TO REST SERVER
- salesforce - 根据“用户名”更新 Salesforce 用户会导致 DUPLICATE_USERNAME 错误
- c++ - 即使条件为假,工厂中的 If 条件冲突函数也会继续执行
- laravel - Laravel:如何设置我的自定义密码代理以供 Password::sendResetLink 使用?
- django - 在日志中加载图像的 Django Weasyprint 超时错误