Rss 如何通知订阅者已发布的项目已更改?

Rss 如何通知订阅者已发布的项目已更改?,rss,Rss,我想为一个有FAQ的网站实现一个非常基本的RSS提要 订阅者将被告知新的问题/答案。太好了 但问题的内容会不时发生重大变化(例如,当找到问题的更好答案时)。RSS能通知订阅者这样的答案已经改变了吗 如果不是,什么是好的解决方法?我正在考虑提供另一个RSS提要,它只宣布对现有问题的更改。这是“正确的方法”吗?答案取决于您希望为哪种类型的客户机实现提要 如果你说的是简单的RSS阅读器,没有真正的标准只更新一个已更改的条目,但大多数都在进行长时间轮询,有效地通过更新再次获取所有提要 但是有一些协议称为

我想为一个有FAQ的网站实现一个非常基本的RSS提要

订阅者将被告知新的问题/答案。太好了

但问题的内容会不时发生重大变化(例如,当找到问题的更好答案时)。RSS能通知订阅者这样的答案已经改变了吗


如果不是,什么是好的解决方法?我正在考虑提供另一个RSS提要,它只宣布对现有问题的更改。这是“正确的方法”吗?

答案取决于您希望为哪种类型的客户机实现提要

如果你说的是简单的RSS阅读器,没有真正的标准只更新一个已更改的条目,但大多数都在进行长时间轮询,有效地通过更新再次获取所有提要

但是有一些协议称为light和fat Ping,它们是专门为处理您想要做的事情而设计的,两者之间的区别是:

  • 轻ping意味着更改的提要的url将发送给订阅服务器
  • Fat ping意味着更改的提要的更新内容将发送给订阅服务器
谷歌支持的一个相当流行的协议(胖ping)被称为。有一些服务已经在使用它,比如Blogger、Youtube、MySpace、Tumblr或Wordpress。他们有很多语言的开源客户端,如果你感兴趣的话,我建议你看看,这是非常完整和信息丰富的


使用第二个提要进行更新似乎不是一个好主意,因为这不是它的设计目的,这意味着您必须为用户安装一个客户端才能有效地获取更新。

我会对编辑或更新日期做一些事情,如果节点已更改为另一个值,则标题和其他XML节点值会将旧版本与新版本进行比较,例如:

如果sml节点的变量可以更改为其他值,则可以使用If语句检查是否有更改,在本例中,我将检查
$title
的值

<?php
$title = 'My awesome title';
/** Here your php code to get the content and assign variable to all nodes **/
$title_old = $title; /** Get the info your xml script or cached XML data **/
$title_new = 'My awesome title'; /** Use YOUR new value! - requestt the content again after someone clicked the save button or use a crontab to get info on changes every x minutes, hours or days **/
if($title_new == $title_old){
   $title_changed = 'No changes detected to the title node';
    echo $title_changed . ': The title is &quot;' . $title . '&quot;';
  }else{
   $title_changed = 'The title node has been changed';
     echo $title_changed . ': The new title is &quot;' . $title . '&quot;';
}
?>


我希望这将引导您进入正确的方向。

您可以将链接的格式设置为包含哈希或最后一个答案的ID。这样,链接将被视为新的,如果您有一个自定义提要阅读器,它可以跟踪链接是新的还是由用户读取的

请您举例说明提要的外观如何?目前它有以下元素:
tag:adg.access4all.ch,2005:PageDecorator/1
2017-02-14T22:51:21+01:00
2017-03-22T15:05:52+01:00
。你会把身份证放在哪里?