Applet

定义

  Applet是一种运行于Web客户端环境下的Java程序组件。

工作原理

  Applet以代码的形式嵌入Web页面中,用标签<applet></applet>标明,当支持Java的网络浏览器遇到这对标记时,就下载相应的应用程序代码,并在本地计算机上执行Applet。

作用优势

  Applet可以提高Web页面的交互能力和动态执行能力

开发步骤

  (1)编辑Applet的java源文件
  (2)编译Applet
  (3)创建HTML文件
  (4)访问HTML页面,执行Applet

生命周期

  Applet类中的四个方法提供一个框架,用户在此框架上开发小程序
  init: 此方法的目的是为Applet程序提供所需的任何初始化。在Applet标记内的param标签被处理后调用此方法。
  start: 浏览器调用init方法后,此方法被自动调用。每当用户从其他页面返回到包含Applet的页面时,则调用此方法。
  stop: 当用户从包含Applet的页面移除的时候,此方法自动被调用。因此,可以在相同的Applet中反复调用此方法。
  destroy: 此方法仅当浏览器正常关闭时调用。
  paint: 此方法在start()方法之后立即被调用,或者在Applet需要重绘在浏览器的时候调用。paint方法实际上继承于java.awt

安全性限制

  1.不允许Applet访问本地文件系统
  2.Applet不能执行任何本地计算机上的程序
  3.不允许Applet尝试打开除提供Applet的服务器之外的任何系统的Socket
  4.不允许Applet访问用户名、电子邮件地址等与本地系统有关的信息
  5.对于Applet而言,Java环境中的某些标准系统属性是只读的
  6.Applet不能创建或者装载Applet机器的网络连接
  7.Applet不能充当网络服务器,监听或接收来自远程系统的连接请求
  8.不允许Applet装载动态库或定义本地方法调用
  9.Applet不能操纵不在自己线程组中的任何线程
  10.Applet不能关闭JVM

独立的Java应用程序和Applet程序之间的不同:

  (1)Java中Applet类继承了Java.applet.Applet类
  (2)Applet类中没有定义main(),所以一个Applet程序不会调用main()方法
  (3)Applet被设计为嵌入在一个HTML页面
  (4)当用户浏览包含Applet的HTML页面,Applet的代码被下载到用户的机器上
  (5)要查看一个Applet需要JVM,JVM可以是Web浏览器的一个插件,或一个独立的运行时环境
  (6)用户机器上的JVM创建一个Applet类的实例,并调用Applet生命周期过程中的各种方法
  (7)Applet有Web浏览器强制执行的严格的安全规则,Applet的安全机制被称为沙箱安全
  (8)Applet需要的其他类可以用Java归档(JAR)文件的形式下载下来

参考源:https://baike.baidu.com/item/Applet     http://www.runoob.com/java/java-applet-basics.html

AJAX

定义

  AJAX即Asynchronous JavaScript and XML(异步的JavaScript与XML技术),指的是一套综合多项技术的浏览器端网页开发技术。
  类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。虽然其名称包含XML,但实际上数据格式可以由JSON代替,进一步减少数据量,形成所谓的AJAJ。

表单缺陷

  传统的Web应用允许用户端填写表单(form)。当提交表单时向网页服务器发送一个请求,服务器接收并处理传来的表单,然后送回一个新的网页。
  而在前后两个页面中的大部分HTML代码往往是相同的,由于每次应用的沟通都需要向服务器发送请求,应用的回应时间依赖于服务器的回应时间。导致用户界面的回应比本机应用慢得多。

AJAX优势

  AJAX应用可以仅向服务器发送并取回必须的数据,并在客户端采用JavaScript处理来自服务器的回应,因为在服务器和浏览器之间交换的数据量大量减少,服务器回应更快。同时,很多的处理工作可以在发出请求的客户端机器上完成,因此Web服务器的负荷也减少。
  使用AJAX的最大优点,就是在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免在网络上发送没有改变的信息。

应用

  (1)运用XHTML+CSS来表达信息
  (2)运用JavaScript操作DOM(Document Object Model)来运行动态效果
  (3)运用XML和XSLT操作数据
  (4)运用XMLHttpRequest或新的Fetch API与网页服务器进行异步数据交换
  注意:AJAX与Flash, Silverlight和Java Applet等RIA技术有区分

关于回退的问题

  在动态更新页面的情况下,用户无法回到前一个页面状态,因为浏览器仅能记下历史记录中的静态页面。一个被完整读入的页面与一个已经被动态修改过的页面之间的差别非常微妙,用户通常希望单击后退按钮,就取消他们的前一次操作,但是在Ajax应用程序中,却无法这样做。

解决方案

  HTML5之前的方法是在用户单击后退按钮访问历史记录时,通过创建或使用一个隐藏的IFRAME来重现页面上的变更。(例如,当用户在Google Maps中单击后退时,它在一个隐藏的IFRAME中进行搜索,然后将搜索结果反映到Ajax元素上,以便将应用程序状态恢复到当时的状态)。

关于无法将状态加入收藏或书签的解决方法

  HTML5之前的一种方式是使用URL片断标识符(通常被称为锚点,即URL中#后面的部分)来保持追踪,允许用户回到指定的某个应用程序状态。(许多浏览器允许JavaScript动态更新锚点,这使得Ajax应用程序能够在更新显示内容的同时更新锚点。)
  HTML5 以后可以直接操作浏览历史,并以字符串形式存储网页状态,将网页加入网页收藏夹或书签时状态会被隐形地保留。
  上述两个方法也可以同时解决无法后退的问题。

兼容性

  AJAX支持的浏览器有Internet Explorer、Chrome、Firefox、Opera、Konqueror及Mac OS的Safari。但是Opera不支持XSL格式对象,也不支持XSLT。

参考源:https://zh.wikipedia.org/wiki/AJAX