ajax - TYPO3 (v9.5) 使用 Ajax 加载新闻扩展
问题描述
我想通过 Ajax 加载新闻列表的详细信息视图。页面重新加载不是一个好的用户体验 - 最好让旧的细节淡出,而列表保持在左侧(或任何地方)的位置,并且只是文章的细节视图发生变化。
问题:
- SEO可能会崩溃
- 如果不扩展新闻,文章的唯一 URL 可能会成为问题
我试图让它工作: https ://gist.github.com/markhowwellsmead/98de3dbaaec2faf52e0863907b5e403e
还看: http ://unterricht.lacheiner.net/index.php?id=217 这是加载更多新闻列表项的示例
我还在考虑获取完整的详细信息 URL,并使用它从具有唯一详细信息模板的页面加载详细信息,例如 www.example.com/?type=9999,该模板仅包含详细信息
最后看看 URL Routing http://www.softfinity.com/blog/an-simple-introduction-to-url-routing/
解决方案
我不建议这样做,因为这会破坏默认的浏览器行为,例如向后和向前,将难以直接链接到新闻项目等。但如果你真的想这样做,我会通过添加一个click
事件来做到这一点列表视图中详细页面链接的a-tag,获取URL,使用ajax获取详细页面,然后只获取我想要的页面部分并显示它。
例如(使用 jQuery):
$('div.newsList div.item a').click(function() {
doStuffToShowItsLoading();
//
$.ajax(this.href, {
dataType: 'html',
success: function(jqXHR, textStatus) {
var detailHtml = $(jqXHR.responseText).find('div.newsDetails');
$('div.newsDetail').html(detailHtml);
doStuffToStopShowingItsLoading();
},
error: function() {
alert('Something went wrong');
}
});
return false;
});
这样,搜索引擎或禁用 JavaScript 的人仍然可以跟踪这些链接。
推荐阅读
- javascript - Angular 和 Leaflet 在点击时添加标记并获取坐标
- javascript - 即使这是预期的,Knexnest 查询也不返回数组中的数据
- angular - Angular8 创建动态容器,其他模块可以注入它们的组件
- r - 特定值后的 R geom_ribbon
- python - AWS Lambda - 与指数退避的 SQS 集成
- model-associations - 如何在没有外键cakephp3的情况下设置动态模型关联
- r - R - 当只有一行时,列类型从“数字”变为“未知”
- php - Windows 上的 PHP CLI 是否为 cmd.exe 硬编码,或者我可以以某种方式使其使用 PowerShell?
- sql - 等价于 impala 中的 zfill()
- r - 拆分字符串 - 隔离议会辩论中的话语