javascript - JSON-LD 可以异步部署吗?
问题描述
我将 JSON-LD 异步部署到脚本标签中:
var jsonLD = document.createElement('script');
jsonLD.type = 'application/ld+json';
jsonLD.innerHTML = JSON.stringify({
"@context": "https://json-ld.org/contexts/person.jsonld",
"@id": "http://dbpedia.org/resource/John_Lennon",
"name": "John Lennon",
"born": "1940-10-09",
"spouse": "http://dbpedia.org/resource/Cynthia_Lennon"
});
document.head.appendChild(jsonLD);
但是, Google 的测试工具在检查 URL 时无法识别任何 JSON-LD。它还会被索引还是谷歌(和其他机器人)对异步加载的 JSON-LD 视而不见?
解决方案
结构化数据测试工具的渲染能力有限,看起来无法处理您的示例。
Googlebot 使用常青版本的 Chrome 进行渲染。即它渲染得很好。
一种测试方法是在 Chrome 中查看页面并将其呈现的 HTML 复制到结构化数据测试工具中。然后您可能会看到您的数据。
请注意,大多数机器人此时不会渲染。因此,以这种方式生成 SD 将限制可以查看数据的系统数量。
推荐阅读
- firebase - Firebase getDownloadURL() 和 getMetadata() 多余地发出相同的 http 请求
- java - 使用 java 发送 unicode 短信
- r - 唯一对(列)之间的共享变量在 R 中使用 widyr() 给出错误
- flutter - 颤振对话框未显示
- javascript - 当 Vue 中的本地存储更改时,更新选项卡/浏览器会话之间的状态
- typescript - MikroORM:如何通过原始 id 设置外键?
- wso2 - 如何在 wso2 中自定义令牌验证响应?
- jenkins - Jenkins 管道触发作业并在后期操作中获得可用的结果
- javascript - 苹果日历 api 与节点应用程序集成
- azure - 获取使用 Azure 数据工厂复制的即时文件名