Single document interface和Multiple document interface

https://en.wikipedia.org/wiki/Single_document_interface

https://msdn.microsoft.com/en-us/library/b2kye6c4.aspx

SDI applications allow only one open document frame window at a time.

It‘s made up of one or more independent windows, which appears separately on the windows desktop.

An example of this would be a simple text document(Notepad).

MDI applications allow multiple document frame windows to be open in the same instance of an application.

An MDI application has a window within which multiple MDI child windows, which are frame windows themselves, can be opened, each containing a separate document.

In some applications, the child windows can be of different types, such as chart windows and spreadsheet电子制表软件 windows.

In that case, the menu bar can change as MDI child windows of different types are activated.

https://en.wikipedia.org/wiki/Multiple_document_interface

Comparison with single document interface

In the usability community, there has been much debate about whether the multiple document or single document interface is preferable.

Software companies have used both interfaces with mixed responses.

For example, Microsoft changed its Office applications from SDI to MDI mode and then back to SDI, although the degree of implementation varies from one component to another.

SDI can be more useful in cases where users switch more often between separate applications than among the windows of one application.

The disadvantage of MDI usually cited引用 is its lack of information about the currently opened windows:

In MDI applications, the application developer must provide a way to switch between documents or view a list of open windows, and the user might have to use an application-specific menu ("window list" or something similar) to switch between open documents.

This is in contrast to SDI applications, where the window manager‘s task bar or task manager displays the currently opened windows.

However, in recent years it has become increasingly common for MDI applications to use "tabs" to display the currently opened windows, which has made this criticism somewhat obsolete.

An interface in which tabs are used to manage open documents is referred to as a "tabbed document interface" (TDI).

Another option is "tiled" panes or windows, which make it easier to prevent content from overlapping.

Some applications allow the user to switch between these modes at their choosing, depending on personal preference or the task at hand.

Nearly all graphical user interface toolkits to date provide at least one solution for designing MDIs, with an exception being Apple‘s Cocoa API. The Java GUI toolkit, Swing, for instance, provides the classjavax.swing.JDesktopPane which serves as a container for individual frames (class javax.swing.JInternalFrame). GTK+ lacks any standardized support for MDI.

时间: 2024-10-10 10:05:33

Single document interface和Multiple document interface的相关文章

jquery插件开发;(function ( $, window, document, undefined ){}(jQuery, window,document)分析

经常看到许多jquery插件是这种形式: ;(function( $, window, document, undefined ){}){ //...code }(jquery,window,document) 一开始自己也是不太清楚,后台查了许多资料博客,基本了解大意,所以总结出来,以供之后查阅更正. 1.自调函数(function(){})() 这是一个自调函数,函数定义后自行调用.将匿名函数放在括号之内,并紧跟一个括号.第二个括号的意思是"立即调用".同时第二个括号也是向匿名函数

document.body.scrollTop与document.documentElement.scrollTop兼容

项目中遇到这个小问题,看到有前辈总结,借来用一下 document.body.scrollTop与document.documentElement.scrollTop兼容 这两天在写一个JS的网页右键菜单,在实现菜单定位的时候发现了这个问题:chrome居然不认识document.documentElement.scrollTop! 看前辈们的文章,纷纷表示如果有文档声明(即网页第一句的docType)的情况下,标准浏览器是只认识documentElement.scrollTop的,但chrom

[No000068]document.body.clientHeight 和 document.documentElement.clientHeight 的区别

document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.documentElement.clientWidth ==> 可见区域宽度 document.documentElement.clientHeight ==> 可见区域高度 注意开头<!DOCTYPE ..>的声明,没有该声明时,document.documentElement.clientHe

部分更新document(pritial update document)

updateAPI是以前说过的read和write操作的联合: 操作步骤: 1:客户端向node1发起请求. 2:node1想node3转发请求,node3是要查找的document的primary shard被分配的地方 3:node3从primary shard检索要查找的document,把_source中的对应的field的作出修改,然后重新插入到priymary shard,如果document被其他线程进行了修改,那么根据retry_on_conflict指定的次数,重复步骤3直到失

检索一个document(retrieving a document)

一个文档可以从primary shard和任意一个相对应的replica shard中检索: 就像上面图形中表示的,下面列出从primary shard或这replica shard检索document的步骤: 1:客户端发送请求到node1 2:这个node使用document的_id判定document在shard0.shard0的备份存在于所有的三个node,在这个情景下,node1把请求转发到node2. 3:node2返回document到node1,node1将会返回响应到客户端.

使用$(window).width(),window.outerWidth,window.innerWidth,document.documentElement.clientWidth,document.body.clientWidth的区别与兼容分析

下面先以谷歌为例做数据分析,兼容性问题后面再说. 先上一张图(图最好理解): firebug打印结果: 使用$(window).width()与$(window).height():1349 392 使用window.outerWidth与window.outerHeight:1366 728 使用window.innerWidth与window.innerHeight:1366 392 使用document.documentElement.clientWidth与document.docume

document.documentElement.clientHeight 与 document.body.clientHeight(杜绝千篇一律的抄袭!!)

document.documentElement.clientHeight 与 document.body.clientHeight用来获取页面可视高度我觉得有点问题.这两个应该不是一个东西. 页面中加了:<!DOCTYPE html> 很明显在谷歌浏览器中两个值不是一个概念. 页面中不加:<!DOCTYPE html> 发现两个的值掉了个个! 所以这里有几个问题要搞明白: 1.<!DOCTYPE html>是什么 <!DOCTYPE> 声明不是 HTML

document.body.clientHeight和document.documentElement.clientHeight区别

document.body.clientHeight:body对象的高度 document.documentElement.clientHeight:指可见区域的高度 获取元素中滚动条的垂直偏移可以写成: var top = document.documentElement.scrollTop || document.body.scrollTop; document.body.clientHeight和document.documentElement.clientHeight区别

火狐、谷歌、IE关于document.body.scrollTop和document.documentElement.scrollTop 以及值为0的问题

一.先遇到document.body.scrollTop值为0的问题 做页面的时候可能会用到位置固定的层,读取document.body.scrollTop来设置层的位置,像这样, window.onscroll=function () { var oId=document.getElementByIdx_x("id"); oId.style.top=document.body.scrollTop+"px"; } 可是怎么没有达到预期效果呢,输出document.b