web网站通知系统设计

news/2024/5/12 12:34:56/文章来源:https://blog.csdn.net/weixin_53370274/article/details/127438712

写在前面: 通知系统是网站信息传播机制的重要的一部分,足够写一大章来说明。本文只梳理设计原则,后续相关内容会持续更新。 这里的通知包括但不限于公告、提醒或消息(不同使用场景下的功能定义不同)。 关于各客户端平台(ios、android、wp等)的通知机制,在其交互设计指南中有更详细的说明,大家可自行参考。
一、通知系统定义
通知系统,顾名思义即通知信息的传达处理系统。目的是为了让用户获得需要得到的消息及提醒并进行处理。
这里的“需要得到”有两层意思:
1、用户彼此互动触发的信息流(留言、评论或者回复、私信等)
2、网站希望用户了解关注的信息(系统公告等)
在这里插入图片描述通知系统设计的原则可简单的归纳为: 1、消息传播效率最高(获取、处理、信息传达、用户反馈等效率) 2、避免产生骚扰(噪音、频繁提示)

二、通知分类
不用的平台和产品本身由于对业务的需求不一样,种类也是有区别的。
大致可分为以下几种:
在这里插入图片描述
三、通知逻辑实现机制
通知的逻辑精简后如下:
在这里插入图片描述
现对这几个环节分开说明:

(一)通知合并
通知在推送之前需要进行汇总合并,目的在于提高消息传播处理效率;减少骚扰,降低噪音;平衡服务器压力。
1)合并周期:
固定时间内的消息全部汇总(24小时内/30天等);
无固定时间(只要未处理/未读即汇总)

当然一般都组合着用:合并24小时内未处理消息
2)分类合并
同种类进行合并(如n条留言合并为1条)
同一发起人合并(如张三给你发来的n条私信)
同一时间周期合并(如24小时共收到n条评论)

(二)通知分发
通知按照规则汇总完成后,系统将其通过通知管道推送到用户,以便用户处理。
1)分发方式
分发方式与Feed系统类似,多采用Push方式,即在指定时间内主动推送给用户。部分特定类型需要用户请求(Pull)拉取未读消息。 目前大部分通知优先推送未处理通知合并后的总数,已提醒用户已有新消息需要处理。用户点击数字后再去服务端请求具体的消息内容。此种方式综合考虑了成本、压力和体验。当然,某些极端情况下需要进行优化处理:如未读消息超过1000,用户请求时先推送前50条或者放入cache中等。技术童鞋会有各种手段,这里不做详述。
2)分发频率(时间)
分发时间主要根据消息的优先级来做区隔:

在这里插入图片描述
3)分发管道
分发管道即消息通知的具体推送渠道,根据业务类型可以分为:Web、App、短信、邮件等。
(三)用户处理
根据前文提到的分发方式,对于通知的处理在逻辑上可以分为两层:通知状态的处理和通知内容的处理。
1)状态的处理狭义的理解即为是否已读(已处理)。
通常初始数字即为系统推送过来的未读总量,用户点击数字进入相关功能列表查阅后,读取的动作完成,未读数字相应减少。
在这里插入图片描述
有几种情况需要变通处理:
若用户未读信息较多(m=100),但第一页列表只能显示(n=10)条的话,那未读数字即为m-n=90;
某些产品会将点击等同于已读。即用户只要点击无论是否打开列表查看均认为已读。 这样的处理一般用于重要级别较低的消息。点击即已读可有效降低骚扰。
某些重要级别较高的消息已处理状态可以定义为用户进行相关操作后才为已处理,而非查阅。 如用户进行评论、回复、点击忽略或点击删除等动作时才认为已处理。
2)内容的处理狭义的理解即为用户是否操作。
根据不同消息的种类和业务的需要,操作可分为:
处理:用户必须点击功能链接进行处理。如:你的密码过于简单,点此进行修改;
回复:如回复私信,对评论进行回复;
确认:对消息做出确认的反馈,如某些系统提示可设置”我已知道,不再提示”的选项;
忽略:用户进行忽略操作或不进行任何操作;
删除:用户删除本消息。

3)消息处理后的状态需要统一。
消息需要标记是否已处理的状态,且状态在不同的终端是打通的。 如:用户在客户端对消息进行了查看,在web站点本消息应自动标记为已读状态。

(四)通知回收
回收主要针对用户已处理消息的操作。
用户之间触发的消息一般需要留档保存。 如评论/回复/留言/私信等。产品可提供选项询问用户是否超过一定周期自动清理。
在部分产品中,还需要考虑功能的优先级。 如解除好友关系或加入黑名单后自动将删除双方的私信记录。
系统触发的消息一般设置一定的回收删除时间。 如系统提醒、通知、公告等。过期后自动在产品里删除。物理上可以设置是否备份。
过期但用户未处理消息(用户长时间未登录但收到他人的回复)可以根据业务需求来处理。 如未读的私信/评论/回复永久保留等。重要未读消息可尝试二次推送或使用其他途径(邮箱、APP、短信等)通知。

四、通知处理交互
注:具体的交互需要考虑本身业务特点和目标需求。特定业务可能需要强调,某些业务又需要考虑骚扰,故抛开具体情境本身谈交互是无耻的。
这里只针对一般的社区网站,描述一下个人所喜欢的交互方式。
1、新消息到达时提醒交互
当新消息到达时,可以使用以下提醒方式
标题闪动

在这里插入图片描述
声音提醒 新消息到达后自动触发声音
在这里插入图片描述
气泡+数字
在这里插入图片描述
新消息浮层
在这里插入图片描述
弹窗提示
在这里插入图片描述
2、通知处理
目前消息多采用当前触发、即时处理类似“所见即所得”的交互方式。
在这里插入图片描述
采用此方式的需要考虑:
消息通知位于全局导航,访问任何频道时都可保证及时收到新消息;
消息在浮层中处理完毕后,用户可继续进行之前的操作,不至于造成打扰;
因导航面积有限,需对消息种类进行统一整理和规划;(Facebook的分类为好友请求、私信、通知。)
提供历史记录(更多、全部消息)的入口(二级页面)
标记已读未读状态,处理好消息提醒数字的关系
在这里插入图片描述

五、防骚扰(打扰)
因消息本身业务性质,过多无用通知势必会造成噪音,打扰到用户。因此合理设置消息的通知频率和渠道,以防早上体验和效率上的损失。
1、提供通知频率和渠道的管理功能
如常见的邮件退订管理,消息通知类型管理。
在这里插入图片描述

Facebook通知设置
在这里插入图片描述
2、增加屏蔽功能
消息屏蔽功能在业务上应该属于第一条中通知类型管理,当业务模块较多且之前关联分散时,或者开放平台功能接入的第三方应用通知时,可使用屏蔽功能。
在这里插入图片描述
facebook应用消息管理
在这里插入图片描述
新浪微博应用消息管理
3、结合权限体系
1、功能隐私设置
使用隐私设置界定具体的接收权限、范围等在这里插入图片描述
六、用户拉回
当用户长时间不登陆或对消息不处理时,可使用其他渠道推送通知,已达到拉回的目的。 这个要与网站整体的拉回策略相结合。

在这里插入图片描述
例:Facebook的好友请求确认拉回邮件:

在这里插入图片描述

七、总结
呃,如果你能看到这里,真的很感谢,这篇文章断断续续更新了好几天才完结,好多地方写的不完整,还望包涵。我本来想试图去总结一套处理这种业务的逻辑方法,后来还是放弃了,原因是:
具体业务要具体分析,已有的资源和现状很重要,这个是设计的前提
大的原则,如优先级、全盘考虑、预留接口、数据统计等讲出来太空,还不如不说

最后,如果你觉得本文对你有用,请分享给其他人。(请注明出处哦)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_800330.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用SHTML更好的维护门户网站(转)

< DOCTYPE html PUBLIC -WCDTD XHTML TransitionalEN httpwwwworgTRxhtmlDTDxhtml-transitionaldtd> 转自&#xff1a;http://blog.breakn.net/article.asp?id266目前为部分访问量大的页面自动生成HTML的方式&#xff0c;不过一些很多页面都要用到的菜单什么的如果要改就…

KindEditor 上传漏洞致近百个党政机关网站遭植入

开发四年只会写业务代码&#xff0c;分布式高并发都不会还做程序员&#xff1f; 2月21日消息&#xff0c;近日&#xff0c;安恒明鉴网站安全监测平台和应急响应中心监测发现近百起党政机关网站被植入色情广告页面&#xff0c;分析发现被植入色情广告页面的网站都使用了 KindE…

一步一步SharePoint 2007之二十一:解决实现注册用户后,自动具备访问网站的权限的问题(3)——创建用户...

下面将记录每一步的实现过程。1、首先我们打开前面文章中创建的工程&#xff0c;以设计模式打开Register.aspx&#xff0c;选中CreateUserWizard控件&#xff0c;然后在右边的点击Properties&#xff0c;在Properties窗格的工具栏上点击Events图标&#xff0c;双击CreatedUser&…

SEO实战干货:网页建库与未建库的标准规则!

很多SEO人稍微有点基础就都知道降权这个词语&#xff0c;但是在搜索引擎规范标准指南里面并未提到站点降权一说&#xff0c;严格来讲用建库这个说法更加准确。首先我们不妨来回顾一下搜索结果排序的过程&#xff0c;从蜘蛛的爬行到蜘蛛的抓取再到网页收录(这里面包括了页面纯收…

使用Bootstrap 3开发响应式网站实践05,使用Tab、Modal、Form展示内容,使用Popover、Tooltip展示提示信息...

本篇体验用Tab插件显示内容。Html部分为&#xff1a;<div class"row" id"moreInfo"><div class"col-sm-6"><h3>兰帕德宣布退出英格兰队</h3><div class"tabbable"><ul class"nav nav-tabs"…

React学习网站

2019独角兽企业重金招聘Python工程师标准>>> 1.W3cschool的中文版学习网站 https://www.w3cschool.cn/react/react-components.html 2.英文版官网学习网站 https://reactjs.org/docs/hello-world.html 转载于:https://my.oschina.net/korabear/blog/1817625

推荐一款在线编辑JSON的网站

推荐一款在线编辑JSON的网站 https://github.com/DavidDurman/FlexiJsonEditor 开源地址&#xff1a;https://github.com/DavidDurman/FlexiJsonEditor 如果这篇文章对您有帮助&#xff0c;您可以打赏我 技术交流QQ群&#xff1a;15129679

【URLOS应用开发基础】10分钟制作一个nginx静态网站环境应用

URLOS开发者功能已上线有一段时间了&#xff0c;目前通过部分开发者的使用体验来看&#xff0c;不得不说URLOS在服务器软件开发效率方面确实有着得天独厚的优势&#xff0c;凭借docker容器技术与其良好的应用生态环境&#xff0c;URLOS必将迅速成为软件开发者的新宠儿。 本篇内…

网站需要提供评论的订阅

为什么80%的码农都做不了架构师&#xff1f;>>> 比如我在某论坛发了一个帖子或者回复了一个帖子&#xff0c;我想让网站通过一种方式提醒我&#xff0c;给我一个链接。但是我不想用email订阅&#xff0c;看着满屏的邮件我就头大。 多说是一个很好的评论平台&#x…

大型网站技术架构(二)架构模式

2019独角兽企业重金招聘Python工程师标准>>> 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样&#xff0c;你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠…

Linux上创建web网站

一&#xff0e;搭建静态网站-----基于http协议的静态网站服务器端&#xff1a; 在Linux上面实现网页服务器需要Apache这套服务器软件&#xff0c;httpd提供Apache主程序。 1.静态网站&#xff1a;要求搭建的web网站基于IP访问&#xff0c;当前web网站的根目录为/openlab&#x…

打开页面直接调用f11_烟台网站建设如何提升网站打开速度?

摘要&#xff1a;烟台网站建设网友上网都不喜欢用太多的时间等待网页的打开&#xff0c;等待得越长&#xff0c;用户可能会直接关闭网页&#xff0c;这样就会损失很多流量&#xff01;其次&#xff0c;关键字的排名与网页的打开速度也有关系&#xff0c;这个主要体现搜索引擎对…

php网站数据备份,PHP网站备份方法-手动备份PHP网站

因网站修改过程中可能会误删或出错需要在做到一个关键阶段时对网站内容进行备份&#xff0c;在网站上线运行一段时间&#xff0c;出于空间安全考虑也需要定期备份&#xff0c;每季或半年对网站进行备份。有些空间自带一键备份的功能&#xff0c;如乐道主机的cPanel和Directadmi…

支撑200并发_从入门到高手,高并发网站成神之路!

高并发网站&#xff0c;不是设计出来的&#xff0c;是一步步调整出来的。一&#xff0c;什么是高并发高并发是互联网分布式系统架构设计中必须考虑的因素之一&#xff0c;通常指&#xff1a;通过设计保证能够同时并行处理很多请求。高并发指标&#xff1a;响应时间&#xff1a;…

怎么用python自己写个网站_如何用Python搭建一个网站?

原标题&#xff1a;如何用Python搭建一个网站? 首先呢&#xff0c;你只有Python语言基础&#xff0c;现在想使用Python搭建一个网站。网站类似于豆瓣读书http://book.douban.com/&#xff0c;具体功能不需要豆瓣读书那么多。实话跟你说吧&#xff0c;有点难度&#xff0c;毕竟…

mysql建站工具_解说 Navicat for MySQL 创建工具

Navicat for MySQL 是一套管理和开发 MySQL 或 MariaDB 的理想解决方案&#xff0c;支持单一程序&#xff0c;可同时连接到 MySQL和MariaDB。这个功能齐备的前端软件为数据库管理、开发和维护提供了直观而强大的图形界面&#xff0c;给 MySQL 或 MariaDB 新手以及专业人士提供了…

Vue-cli seo 使用prerender-spa-plugin插件预渲染

使用vue-cli打包项目一般为spa项目&#xff0c;众所周知单页面应用不利于SEO&#xff0c;有ssr(服务端渲染)和预渲染两种解决方案&#xff0c;这里我们只讨论预渲染 vue-cli有2.0和3.0版本&#xff0c;解决方法是不一样的&#xff0c;我们要分开讨论。 vue-cli2.0版本 1.安装…

ASP.NET网站开发——用户控件与HttpHandle

用户控件与HttpHandle 一、用户控件 含义&#xff1a;用户控件是能够在其中放置标记和web服务器控件的容器&#xff0c;可以被看作一个独立的单元&#xff0c;拥有自己的属性和方法&#xff0c;并可被放入到ASPX页面上&#xff0c;其工作原理与ASP.NET页面非常相似。也可以这样…

ASP.NET网站开发——成员资格和角色管理

成员资格和角色管理 一、成员资格简介 ASP.NET成员资格支持下列功能: &#xff08;1&#xff09;创建新用户和密码。 &#xff08;2&#xff09;将成员资格信息&#xff08;用户名、密码和支持数据&#xff09;存储在Mixrosoft SQL ActiveDirectory或其他数据存储区。 &#xf…

ASP.NET网站开发——个性化用户配置概述

个性化用户配置概述 一、<profile>配置节 设置<profile>配置节时&#xff0c;经常对其中的三部分进行配置&#xff1a; 1.<profile>自身属性设置 2.<profile>配置节的字节<properties>属性设置 3.<profile>配置节的子节点<providers>…