Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.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
Java 基于Ajax的应用程序中的问题_Java_Javascript_Ajax_Frameworks - Fatal编程技术网

Java 基于Ajax的应用程序中的问题

Java 基于Ajax的应用程序中的问题,java,javascript,ajax,frameworks,Java,Javascript,Ajax,Frameworks,我对开发基于Ajax的应用程序非常感兴趣。也就是说,通过XMLHttpRequest加载应用程序的几乎所有内容,而不仅仅是一些组合和小部件。但是如果我试着做这个表单抓取,很快我就会发现一些没有简单解决方案的问题。我想知道是否有一些框架(客户端和服务器端)来处理这个问题。据我所知,没有(但我主要在Java世界中搜索过)。因此,我正在认真考虑做我自己的框架,至少是为我的项目 因此,在这个问题上,我要问几个问题。首先,基于ajax的开发可能存在的问题。然后,我正在寻找一些框架或实用程序来处理它们。最后

我对开发基于Ajax的应用程序非常感兴趣。也就是说,通过XMLHttpRequest加载应用程序的几乎所有内容,而不仅仅是一些组合和小部件。但是如果我试着做这个表单抓取,很快我就会发现一些没有简单解决方案的问题。我想知道是否有一些框架(客户端和服务器端)来处理这个问题。据我所知,没有(但我主要在Java世界中搜索过)。因此,我正在认真考虑做我自己的框架,至少是为我的项目

因此,在这个问题上,我要问几个问题。首先,基于ajax的开发可能存在的问题。然后,我正在寻找一些框架或实用程序来处理它们。最后,如果没有可用的框架,它必须具有哪些特性

以下是我认为的问题:

1-必须启用JavaScript。安全性偏执并不是唯一的问题:很多移动设备也无法使用该应用程序

2-有时您需要更新多个DIV(例如,主要内容、菜单和面包屑)

3-未知响应类型:在进行Ajax调用时,也设置了回调函数,通常指定预期的响应是javascript对象还是结果放在哪个DIV中。但是,当您收到另一种类型的响应时,这将失败:例如,当会话已过期,用户必须再次登录时

4-浏览器的刷新、后退和前进按钮可能真的很痛苦。用户将根据情况期望不同的行为

5-当搜索引擎索引一个网站时,只关注链接。因此,对于还不了解Ajax的人来说,Ajax加载的内容不会“存在”

6-用户可以要求在其他窗口/选项卡中打开链接

7-地址栏不显示您所在的“真实”页面。因此,您无法复制位置并将其发送给朋友或将页面添加书签

8-如果你想赚钱的网站,你可以放一些广告。由于您不刷新整个页面,并且希望在一段时间后更改广告,因此只需刷新广告所在的DIV。但这可能会违反广告服务的条款和条件。事实上,它可能与AdSense TOS背道而驰

9-刷新整个页面时,所有JavaScript都会被“清除”。但在Ajax调用中,所有JavaScript对象都将保留


10-您无法轻松更改CSS属性。

页面内容不应使用AJAX加载,因为正是您概述的可用性问题。请改用PHP include()或类似的服务器端模板。

我认为您必须区分两种情况:

  • web应用程序是登录用户(例如,博客作者和员工…)的真实应用程序。AJAX作为主要技术在这里很好,因为您可以期望您的用户满足您的系统需求(体面的浏览器,javascript)
  • web应用程序是对任何人公开可见的普通网站。在这种情况下,AJAX作为主要技术是完全不好的,因为你失去了访问者、搜索引擎等。总是对没有花哨内容的网站进行编码,然后用可选的花哨内容增强网站
  • 因此,假设您的申请是类型1,您的问题1、5和8已经得到了回答

    问题2:没问题。控制AJAX调用的javascript可以对答案执行任何操作。把它炸成碎片,然后按你的感觉把它们粘在沙发上

    问题3:与问题2相同:只需在javascript中关注这些情况

    在问题4、6和7之后:通过将应用程序状态保存到实际url的哈希中,可以重现许多正常的前向/后向行为。您可以在不重新加载页面的情况下更改哈希。许多javascript框架都提供了使这一点更加舒适的功能(例如,查看dojo的历史)

    问题9:这是正确的,但通常不会有大问题,除非您的脚本有缺陷

    问题10:你可以!javascript的强大功能可以帮助你做到这一点,年轻的学徒。例如,通过javascript插入链接标记

  • 对。这就是为什么您遵循MVC模式,而不只是返回m的一大块 阿库普
  • 见第2条
  • 或类似
  • 见1
  • 见1
  • 请参见第4节,但这并不完美,为什么Ajax对web应用程序来说是好的,但不好 对于网站
  • 你需要选择一个你可以使用的广告服务
  • 见第4条
  • 为什么不呢
  • 我想知道是否有一些框架(客户端和服务器端)来处理这个问题。据我所知,没有

    你在开玩笑!Java Ajax框架中有很多类似的功能:

    谷歌“java ajax框架”排行榜的第一名是: