Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web applications Web和桌面应用程序在构建UI方面的差异_Web Applications_User Interface_Desktop Application - Fatal编程技术网

Web applications Web和桌面应用程序在构建UI方面的差异

Web applications Web和桌面应用程序在构建UI方面的差异,web-applications,user-interface,desktop-application,Web Applications,User Interface,Desktop Application,web应用程序的UI与桌面应用程序的UI构造不同。我想知道两种应用程序风格在以下方面在构建UI方面的主要区别: 1.使用的技术 2.使用的技术 3.使用的控件 4.屏幕改变行为在网页设计中,一个不可忽视的主要问题是后退按钮。成千上万的人试图使其失去功能,或者绕开它。不要试图绕过后退按钮!相反,将后退按钮作为设计的一部分 有趣的阅读:。在我看来,最大的区别是,在web应用程序中,您对鼠标行为的影响非常有限,并且您的行为与既定的桌面行为背道而驰。例如: 在桌面应用程序中,鼠标右键单击几乎会弹出上下

web应用程序的UI与桌面应用程序的UI构造不同。我想知道两种应用程序风格在以下方面在构建UI方面的主要区别:

1.使用的技术

2.使用的技术

3.使用的控件


4.屏幕改变行为

在网页设计中,一个不可忽视的主要问题是后退按钮。成千上万的人试图使其失去功能,或者绕开它。不要试图绕过后退按钮!相反,将后退按钮作为设计的一部分

有趣的阅读:。

在我看来,最大的区别是,在web应用程序中,您对鼠标行为的影响非常有限,并且您的行为与既定的桌面行为背道而驰。例如:

  • 在桌面应用程序中,鼠标右键单击几乎会弹出上下文菜单。在webapp中也是如此,但它是浏览器的上下文菜单,您不能(也不应该)更改它
  • 在桌面应用程序中,单击一次选择某个内容,双击执行某个内容;在webapp中,单击一次就已经“执行”了链接,而双击则不存在

桌面应用程序倾向于使用“在此事件中执行此代码块”模式编写。Web应用程序更多的是块模式“服务器格式化整个页面,用户填写表单并按下按钮,服务器处理整个表单,服务器格式化另一个完整页面”模式

AJAX稍微弄脏了水,因为浏览器可以在后台请求一些数据,并刷新页面的某些部分。然而,基本原则仍然存在

更容易使桌面GUI响应特定的鼠标移动和单击等。另一方面,对于Web应用程序,与服务器的唯一通信是“获取”和“发布”请求,因此用户界面更笨拙


基于Web的应用程序更具可移植性,客户端上需要的唯一软件是可兼容的浏览器。这些系统管理优势正是人们忍受稍差的GUI的原因

主要区别在于,桌面上的可视化构建速度非常快,无需使用不同的浏览器进行测试。我总是发现构建桌面很有魅力,因为软件的可视化部分只需绑定在控制器(包含模型)上,您就可以开始了

另一个区别是加载速度。您不必为显示传输Javascript或CSS。。。您不必使用zip或其他东西,因为它在桌面上的源代码中始终可用

另一件事是,您可以使用计算机的RAM来做一些困难的事情,这有助于减少在服务端使用多台计算机的需要,因为您可以使用所有这些计算机来“农场”大型流程(如果需要)

另一方面,部署更困难(你有ClickOnce和自动工具可以帮助你),但它从来没有像web那样透明。所以,您必须更有计划地进行发布,因为您无法进行“热修复”。

  • 在web浏览器中,跨帧通信很困难。例如,使用javascript使一个iframe影响另一个iframe。主要是因为加载时间可能不同,所以帧A可能需要在计时器循环中等待帧B加载

  • 在web UI中,消息传递确实需要考虑请求/响应周期。很难做到“如果eh数据库中的记录发生变化,在eh用户屏幕上弹出一条消息”。此外,如果按下一个按钮必须刷新5个不同的iFrame,那么您可能会向服务器发出5个不同的请求。在桌面用户界面中真的不需要担心这一点


我发现最不同的是数据绑定。这个概念仍然是一样的,但对于web应用程序,您总是担心是否要重新绑定所述控件以基于其他事件单击刷新数据。桌面应用程序的好处在于,这并不是什么大问题,因为单击其他事件或转到其他选项卡不会使控件中的数据无效。

许多人忽略的一个重大设计差异是窗口本身的结构

  • 桌面应用程序倾向于以最小的高度和宽度分辨率(通常为800*600)构建,并尽可能将所有相关信息放入一个小于该分辨率的大小,因为滚动条通常对于非表格/列表数据来说是非常糟糕的做法。如果需要更多空间,则通常将信息拆分为新窗口或子窗口窗格/选项卡
  • 另一方面,web应用程序的垂直高度基本上是无限的,因为大多数人习惯于在web浏览器中滚动。滚动条不再是一件坏事;事实上,在任何可以使用主滚动条的地方使用滚动条通常被认为是不好的形式(当然,也有少数例外)。信息通常显示在一个“窗口”中,因为将其拆分需要分别加载页面和重新加载相同的数据(样式、菜单等。是的,有缓存,但速度不如不加载单个页面)。负荷越大,速度越慢,会产生不连续感。有时它们是不可避免的,但你几乎不应该将你的应用限制在浏览器窗口的可见大小
  • 很多人使用网络浏览器的目的是阅读。新闻、博客、youtube上的评论等等。当你制作一个web应用程序时,它应该反映出这个习惯,因为如果人们在网页和你的应用程序之间切换(你知道有些人会这样做),你会通过完全不同的布局刺激他们的大脑。看起来你只是在模仿大玩家,但一致性比立即看起来要重要得多
  • 文本列不应该超宽,因为行越宽,越难跳转到下一行