当前位置: 首页 > 图文教程 > 网站运营 > 建站经验 > Opera 蜻蜓(Dragonfly)的总体架构

建站经验
BlueHost主机设置DNS
从下岗职工到月入6万 tao114导购网站长的心路历程
将Friend Connect作为zblog博客的widget
分享IP100分类信息新站 月赚2000元经验
什么是用户体验 提高用户体验的优化建议
六点思考:互联网产品设计要以用户为中心
img图片元素下多余空白BUG解决方案集锦
zblog和wordpress使用感受 还是选择zblog
CSS初学者技巧 CSS标准和最佳示例(图)
如何让垃圾站变正规站
2009年,除了淘宝网店你还能做什么?
从品和位两个方面 来谈谈网站运营的定位
当一个博客不再自由 博客退订引起的思考
放心去玩吧 手机版远程网站文件删除程序
流量大不要怕 WordPress类型博客的优化法
为什么大部分的网站粘不住流量 四个原因
Web 设计中九个常见的可用性错误(多图)
快即是好 缩短你网页开发时间的十大方法
我做非主流图片站的一些总结
域名解析的问题集锦收藏

建站经验 中的 Opera 蜻蜓(Dragonfly)的总体架构


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-26   浏览: 200 ::
收藏到网摘: n/a

简介

本文详细解释了 Opera 蜻蜓(Dragonfly)的总体架构,其中各个组件的作用和联系。

  • 架构概览
  • 调试方法
  • 本机
  • 远程
  • 组件
  • 运行时
  • 调试主机
  • Scope 模块
  • Scope 协议
  • 代理
  • 调试客户端

架构概览

Opera 蜻蜓(Dragonfly)是 Opera 软件公司提供的开发工具,它的架构使它既可以在平面电脑运行,也可以在手机等移动设备上运行。

一个 Scope 模块将传递出运行时的信息, 比如被调试 Opera 实例中的网页和应用。 这个实例作为调试的主机,为客户端提供信息。主机和客户端之间数据相互传输使用 Scope 协议规范和定义。

为了解决潜在的防火墙问题,一个代理会用来协调处理浏览器和调试器间的信息传递沟通。一个具体的应用实例是使用普通桌面电脑调试一个运行在手机上网页或者应用。

而客户端,如调试器,可以将信息视觉化并允许用户操作运行时环境。

主机和客户端可以运行在不同的设备上,而代理可以运行在任何两者中任一实例,也可以在单独服务器运行。


 调试方法

主要有两种调试方法:
本机:Scope,代理和调试器运行在同一个 Opera 实例中。
远程:Scope 和调试器运行在两个不同的 Opera 实例上,比如,两个不同的设备上。而代理可以运行在两实例之一,也可以在另外的独立计算机上运行。

本机

这是最常用和最典型的方法。开发者们正在开发网络应用,它可以正常运行于 Opera 浏览器。该调试器运行于相同实例中,显示在一个独立窗口或面板。

在这种情况下,调试主机,代理和客户端运行于同一个浏览器实例。Opera 选择一个随机端口运行代理,Scope 模块和调试器会自动连接它。

远程

这个方法的一种应用是可以调试手机上的网页或应用。手机一般屏幕很小,开发也很受限制,因此用桌面电脑来调试是一种方便的做法。

另一种可能性是在同一个设备上的一个 Opera 实例调试另一个 Opera 实例,这在调试实例濒临崩溃的时候非常有用。

远程调试方法可以分解为两种用法:
代理在两实例之一运行。
代理独立于实例运行,比如运行在公共服务器上。

第二种方法可以运用在,被调试实例和调试器隔防火墙运行的情况。

组件

此架构由下列组件构成:

  • 运行时
  • 调试主机
  • Scope 模块
  • Scope 协议
  • 代理
  • 调试客户端

每个 ECMAScript 环境都是一个单独的运行时。每个 HTML 文档也都关联一个独立的运行时。框架和 iframe 中的文档也有自己的运行时。

调试主机

调试主机可以是任何启用了 Scope 模块并且连接到代理的 Opera 实例。它可能包含多个运行时。

Scope 模块

Scope 模块是 Opera 程序的一部分。一旦启用,模块将向代理 URL 建立一个 socket 连接并检测调试主机上的任何运行时。之后它会将信息发送给调试器。它也会对调试器的特定命令作出响应,比如从选定节点下载 DOM。

Scope 协议

Scope 协议是一套用来在主机和客户端之间交换关于运行时信息的规则和格式。实例包括从运行时得到 DOM 文档结构,或者计算得到的样式集合。

Scope 协议仍在开发之中。一旦完成,它将被完全公开。之后其它厂商或开发者可以创建自己的调试客户端并将它们整合到程序中,如 IDE (例如 Aptana 或 Eclipse)。使用此 scope 协议,此类客户端可以收集到一个 Opera 浏览器的运行时信息。

代理

代理负责在浏览器和调试器之间中转信息。在远程调试方法中它非常重要,即调试主机和客户端不在同一个计算机上。

Opera 运行调试器的实例会提供一个内置的代理,但代理也可以运行在一个公共服务器上。这样,被调试实例和调试器可以均在防火墙之后。

怎样将主机和客户端连接到代理,请参见《Opera 蜻蜓简介》。

调试客户端

调试器即为客户端,它通过代理连接到调试主机的 scope 模块。它会接收到该实例的运行时信息。调试器将运行时信息可视化,允许用户修改。它通过 Scope 协议向 Scope 模块回送请求以实现其功能。

目前调试器的实现完全基于网络技术:HTML/XML,CSS 以及 JavaScript。