gpt4 book ai didi

gwt - 超链接与 anchor

转载 作者:行者123 更新时间:2023-12-03 11:40:19 25 4
gpt4 key购买 nike

何时使用 HyperLink,何时使用 Anchor?

使用 HyperLink 时如何处理点击?
com.google.gwt.user.client.ui.Hyperlink.addClickHandler(ClickHandler) 已弃用
com.google.gwt.user.client.ui.Hyperlink.addClickListener(ClickListener) 也已弃用。

Doc 建议使用 Anchor#addClickHandler , 但是如何使用 主播 #addClickHandler使用 时超链接

这是否意味着如果我需要处理点击我应该总是使用 Anchor并且永远不要使用 HyperLink ?

最佳答案

很好的问题,因为它非常简单,而且为许多 GWT 程序员开辟了一个全新的领域。我对这个问题投了赞成票,只是因为它可以很好地引导人们探索 GWT 可以做什么。

Anchor 是一个用于存储和显示超链接的小部件——本质上是 标记。真的没有比这更令人兴奋的了。如果您希望您的页面链接到某个外部站点,请使用 anchor 。

链接也用于内部导航。假设我有一个需要用户登录的 GWT 应用程序,所以在我的第一个面板上我放置了一个登录按钮。当用户单击它时,我会显示一个新面板,其中包含用于收集用户信息的小部件、验证它的代码,然后如果验证成功,则重建用户所在的第一个面板。

按钮很好,但这是一个浏览器,我希望我的用户体验更像是一个网页,而不是桌面应用程序,所以我想使用链接而不是按钮。超链接就是这样做的。
documentation for hyperlink很好地描述了它:

A widget that serves as an "internal" hyperlink. That is, it is a link to another state of the running application. When clicked, it will create a new history frame using History.newItem(java.lang.String), but without reloading the page.

Being a true hyperlink, it is also possible for the user to "right-click, open link in new window", which will cause the application to be loaded in a new window at the state specified by the hyperlink.



第二句话应该有助于澄清它。超链接不会在 URL 意义上更改页面( anchor 所做的方式),尽管 URL 将通过显示与附加到基本 URL 的超链接相关联的“ token ”来反射(reflect)程序的状态。您定义 token 。这将是描述性的,例如“登录”或“帮助”或“关于”。但这不是一个新页面。例如,您无需构建额外的 HTML 文件来显示帮助页面。当前 GWT 应用程序的状态正在发生变化。即使您“在新窗口中打开”,您也只是在特定状态下运行同一个应用程序。

它看起来像一个链接,但它实际上是一个操纵历史框架的小部件,这反过来又允许您移动 GWT 应用程序的状态。您无需为超链接小部件编写单击处理程序,而是为历史堆栈编写值更改处理程序。当您看到“帮助”标记已放入历史堆栈时,您的处理程序将执行 GWT 代码以将带有嵌入 HTML 文本的 FlowPanel 附加到 RootPanel 以及您的帮助信息。这被用户感知为“新页面”,这是他点击超链接时所期望的。 URL 将是 something.html/help。现在假设他通过后退按钮而不是您的超链接返回此 URL。没问题。你不关心超链接点击。你只关心,不知何故,历史堆栈发生了变化。您的值更改处理程序再次触发,并执行与以前相同的操作以显示帮助面板。用户仍然喜欢浏览网页的体验,即使您和我都知道只有一个网页并且您正在将面板附加和分离到 RootPanel(或用于显示 GWT 面板的任何方案)。

这导致了一个额外的话题。

这个奖励有点复杂,但具有讽刺意味的是,它可以帮助更好地理解超链接。我说的更复杂,但实际上,它有助于巩固 GWT 应用程序由一系列状态组成的概念,屏幕上的网页只是用户对这些状态变化的感知。那是 Activities and Places .事件和地点抽象了这个历史框架操作,一旦你设置了一个带有为此目的而设计的 GWT 提供的类的映射器,就在后台处理它,允许你将你的应用程序分解为一系列事件,并且作为用户通过这些事件进行交互,他被放到不同的地方,每个地方都有一个 View 。此外,用户可以使用浏览器控件(如地址栏、书签、历史记录和后退/前进按钮)从一个地方移动到另一个地方,从而为用户提供真正的网络体验。如果您真的想掌握超链接和 anchor 之间的概念差异,您应该尝试学习这个 GWT 主题。它真的可以让你改变你查看应用程序的方式,并且变得更好。

关于gwt - 超链接与 anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7610189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com