twitter 改版吸引了很多用户的眼球,最近他们也放出了所有用户的体验新版的通道。
twitter 完全以一个全新的面貌展示,完全放弃了IE6,IE7/8 的某些特效体验也放弃了,专注于更优秀体验,以及技术跟进最快的chrome firefox safari 等浏览器。另外其前端的 javascript 整体结构也几乎完全改变,完全基于API来实现。
这里结合twitter官方博客发表的博客大略的分析一下twitter的新特性和技术:
Top
Navigation
始终居顶的导航条十分方便,涵盖了twitter所有的主要的入口,以及操作。
Timeline
信息的呈现有了很大的变化,页面也不再是单纯的无休止的timeline。
左侧的信息流每条都可以展开,展开后会显示和 此条tweet 有关的tweet ,包括retweet,reply,mention,tag。右边的信息栏体现出了自己最新的一条tweet,以及follower和follow的头像。
新版twitter 的页面跳转非常少,用户几乎只要留在首页就能得到他想取得的最大信息量。因为twitter充分利用了改版后固定的右边栏空间,所有交互产生的新内容都由一个位置相对浏览器窗口固定的层来展示。如:点击用户id,在右侧显示其miniprofile,并且显示该用户最近的3条tweets。
keyboard shortcuts
twitter的快捷键十分的丰富,在twitter里,你可以通过shift + ?来查看快捷键菜单
和google reader 一样
这些快捷键都是全局的,只要焦点不被 input 或是 textarea 上都可以使用。
另外对单条微博的快捷键操作需要展开当前微博。有所欠缺的是,在发单条tweet的时候,你并不能直接用 ctrl + enter发布新微博。但twitter 可以用 TAB 键来focus 发布按扭,再按 enter 键就能达到效果。所以几乎可以不用任何鼠标操作来使用twitter的大部分功能。
API
新改版的twitter是完全基于他自己的开发的API 搭建的,而各个平台的twitter 客户端,无论是andriod 还是 iphone 都是从同样终端获取数据。任何第三方应用的获取的数据也与此相同。
从初始化页面的请求到客户端的每个请求,获得的都将是经过优化过的json碎片缓存
javascript API
另外twitter 的javascirpt API 提供的 API 获取以及智能的客户端缓存(内存或是本地存储),使得他们大量的减少了服务器请求数。
举个例子来说:
timeline 的获取包含了每条tweet相关的用户信息,这使得用户信息被预先存储了。所以当点击用户名查看信息时,不必再去向服务器请求用户数据。
另外一个特点就是 javascript API 在每个API 被请求的前后都启用了事件通知机制。
这使得 组件在某个API请求后,可以得到消息 并且立即做出适当的UI变化。这就使得组件之间即便在依赖相同数据时相对独立。
page management
twitter 这一次的改版显然目的是使得页面间的跳转,更快更方便。为了达到这个目的,他们开发出了一套由URL hash来实现的路由系统在状态的页面之间切换。当用户要前往某个页面时,应用就会把用户访问过的页面缓存在内存中。虽然那个页面的内容数据在内存中是不会更新的,但是通过页面对 javascript APi 事件的通知机制,他们使得数据同步变的不那么复杂。
the render stack
twitter 是基于 Mustache
这个 模版引擎(前后端都是),并开发出了一个可以从API对象产生HTML碎片的系统。
twitter 在优化dom上下了很多功夫。例如:他们全面的实施了事件通知机制,这使得不用担心需要额外的事件绑定。
而twitter 的大多数UI都是可重用的组件,所以他们把一些集中的事件处理放到少数核心的节点上。
当然twitter也在建立起所有的HTML结构,绑定相应的数据之后才插入文档流,这样尽量减少了页面的重绘。
inline media
新的twitter 可以嵌入和twitter合作的第三方的视频和图片了。
这些嵌入基于oEmbed
标准,发起 json-p 的请求去和内容提供商,然后得到返回后嵌入返回的内容数据。
如果是youtube 或是 twitpic 这样的合作方,我们可以根据已知嵌入的内容推算出URL,并直接显示出来。这样就可以减少http请求,给用户一个更快的用户体验。
open source
twitter 使用了很多的开源库,jQuery、Mustache
、LABjs
twitter,同时twitter在使用这些库的同时,也做很多大胆的创新,使得这些技术在twitter 的应用上,更加合理,推动了twitter 用户的体验的整体提升。
- 大小: 33.9 KB
分享到:
相关推荐
Scala 教程 - Twitter Scala 是 Twitter 使用的主要应用编程语言之一。很多我们的基础架构都是用 Scala 写的,我们也有一些大的库支持我们使用。虽然非常有效,Scala 也是一门大的语言,经验教会我们在实践中要非常...
Twitter数据集就很好地体现了这四个特性,海量的推文、实时更新的速度、多样的信息内容以及挖掘出的潜在价值。 接下来,我们关注Twitter数据集的分析过程。在对这个数据集进行处理时,通常会经历以下几个步骤: 1....
"仿twitter社区源码"意味着这个项目旨在复制Twitter的主要特性,如时间线、推文发布、关注、点赞、转发、评论等。开发者可能需要熟悉Twitter API的使用,虽然在这个修复版中可能是离线模拟,但了解API设计原理对理解...
总结来说,“html5开发-仿twitter”项目是一个实践HTML5新特性的优秀示例,涵盖了响应式设计、实时通信、媒体处理、数据存储等多个方面。通过研究这个项目,开发者不仅可以提升自己的HTML5技能,还能了解到如何构建...
- **网络拓扑分析**:研究关注网络的结构特性,如度分布(单个用户被关注的数量)、聚类系数(朋友的朋友之间成为朋友的概率)等,揭示网络的规模自由度和小世界特性。 - **社区检测**:通过算法(如 Louvain 方法...
开源项目是软件开发中的一个重要概念,Talon for Twitter Android的开源特性意味着其源代码完全公开,开发者可以自由地查看、修改和分发这个项目。这种开放的开发模式鼓励社区参与,促进了软件的持续改进和创新。...
尽管事件检测本身长期以来一直是研究热点,但Twitter的独特特性——例如数据量巨大、噪声多以及信息更新快速等——使得在该平台上进行有效的事件检测变得极具挑战性。 #### 方法介绍:EDCoW (Event Detection with ...
3. **推送通知**:为了及时让用户收到新消息和关注的事件,Twitter应用会集成Google的Firebase Cloud Messaging (FCM) 或者其他推送服务,以便在后台接收和处理推送通知。 4. **多媒体处理**:Twitter支持文字、...
标题“twitter4j-2.2.1”指的是这个库的一个特定版本,即2.2.1,它可能包含了一些新特性、改进和修复的bug。 描述中提到,“twitter Api 接口 可以使用此api接口在任何平台上开发twitter应用”,这揭示了Twitter4j...
`miniprofiler-jvm`的主要特性包括: 1. **实时性能反馈**:在代码执行过程中,它能实时显示每个操作的耗时,便于快速定位性能问题。 2. **低侵入性**:只需简单地添加几行代码,就可以将性能剖析集成到现有项目中。...
Bootstrap以其简洁、直观、灵活的特性,深受全球开发者喜爱,成为了构建现代网页应用的首选工具。 Bootstrap的核心组件包括:网格系统、排版、表单、按钮、图片、导航、下拉菜单、警告提示、模态框、媒体对象等。...
例如,如果某个worker进程失败,Nimbus会重新启动该进程,并将未完成的任务重定向到新的worker进程上。 - **可扩展性**:Storm设计为高度可扩展的系统,能够随着数据量的增长而线性扩展。这得益于其分布式架构和动态...
Bootstrap框架的核心特性包括: 1. 响应式网格系统:Bootstrap提供了一套灵活的12列的网格布局,能够适应不同设备的屏幕尺寸,从手机到桌面电脑,都能呈现出良好的布局效果。 2. 组件丰富:包括导航条、下拉菜单、...
复杂网络分析方法可以揭示网络的结构特性,如度分布、聚类系数、路径长度等,这些都能提供关于信息传播和用户行为的洞察。在特斯拉数据集中,可以探究特斯拉粉丝网络的拓扑结构,找出核心用户,以及信息传播的关键...
### Twitter API的关键特性 1. **数据访问**: Twitter API允许开发者通过编程方式获取Twitter上的公开数据,包括用户资料、推文、趋势话题等。 2. **认证机制**: 为了保护用户隐私和提高安全性,Twitter API采用了...
**Twitter Bootstrap 深度解析** Twitter Bootstrap 是一个流行的开源前端框架,由 Twitter 开发并维护,用于快速构建响应式、移动优先的网页项目。它提供了丰富的预定义样式、组件和JavaScript插件,大大简化了...
首先,了解Twitter数据的特性是设计大数据实时计算架构的基础。推文作为Twitter的核心数据单元,通常由140个字符的消息和一些元数据组成。这些数据需要被实时地索引和查询,支持按id、作者等进行查询。处理这样大...
在移动开发领域,Android平台因其开源特性与广泛的设备支持,一直是开发者们的热门选择。在这个项目中,我们关注的是一个特定的应用——"android twitter客户端源码",它是一个基于Android平台的Twitter客户端应用。...