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

Applet程序组件与AJAX技术的更多相关文章

  1. Java EE开发技术课程第五周(Applet程序组件与AJAX技术)

    1.Applet程序组件 1.1.定义: Applet是采用Java编程语言编写的小应用程序,该程序可以包含在HTML(标准通用标记语言的一个应用)页中,与在页中包含图像的方式大致相同.含有Apple ...

  2. Web应用程序开发,基于Ajax技术的JavaScript树形控件

    感谢http://www.cnblogs.com/dgrew/p/3181769.html#undefined 在Web应用程序开发领域,基于Ajax技术的JavaScript树形控件已经被广泛使用, ...

  3. AJAX技术主要包含的四个组件

    1.XMLHttpRequest:使用AJAX技术都是从XMLHttpRequest开始的. 2.JavaScript:实现XMLHttpRequest对象相关功能. 3.CSS 4.DOM

  4. Ajax技术(WEB无刷新提交数据)

    (转自:http://www.jb51.net/article/291.htm) Ajax内部交流文档一.使用Ajax的主要原因 1.通过适当的Ajax应用达到更好的用户体验: 2.把以前的一些服务器 ...

  5. 特定场景下Ajax技术的使用

    ajax介绍 jax技术包含了几种技术:javascript.xml.css.xstl.dom.xhtml和XMLHttpRequest七种技术,所以ajax就像是粘合剂把七种技术整合到一起,从而发挥 ...

  6. Java基础96 ajax技术的使用

    本文知识点(目录): 1.ajax的概念   2.使用ajax技术获取服务端的数据_实例   3.使用ajax技术检查用户名是否已存在_实例   4.使用ajax技术验证登录页面的用户名和密码_实例 ...

  7. 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理

    服务器文档下载zip格式   刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...

  8. Ajax技术

    1.ajax技术的背景 不可否认,ajax技术的流行得益于google的大力推广,正是由于google earth.google suggest以及gmail等对ajax技术的广泛应用,催生了ajax ...

  9. Java之Ajax技术

    ajax(asynchronouse javascript and xml) 异步的javascript 和 xml(现在常把xml换成json): ajax是2005年提出的,在2006,2007年 ...

随机推荐

  1. 使用 pt-online-schema-change 实现在线DDL

    问题背景 平时进行修改表的结构,更改字段,新增字段,更改字段名称一般都是通过ALTER TABLE  语法进行修改的.对于小表或者并发访问不是很大的情况是OK.但是如果是在线大表,那就很麻烦.由于表数 ...

  2. windows 10 更新补丁包

    http://www.catalog.update.microsoft.com/Search.aspx?q=windows%2010%20prohttp://www.catalog.update.mi ...

  3. SpringBoot------集成MyBatis报错

    在spring boot启动main方法所在的类中加入 @MapperScan注入后报错: Invalid default: public abstract java.lang.Class org.m ...

  4. mac更改launchpad图标大小

    设置每列显示的图标数目为8 defaults write com.apple.dock springboard-columns -int 8设置每行显示的图标数目为7 defaults write c ...

  5. JS 浅谈函数柯里化,不明觉厉

    在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术.这个技术由 Christopher ...

  6. Qt编写自定义控件5-柱状温度计

    前言 柱状温度计控件,可能是很多人练手控件之一,基本上都是垂直方向展示,底部一个水银柱,中间刻度尺,刻度尺可以在左侧右侧或者两侧都有,自适应分辨率改动,有时候为了美观效果,可能还会整个定时器来实现动画 ...

  7. Python——rrdtool模块的安装

    一.Centos环境yum命令安装 yum install rrdtool rrdtool-devel 二.源码安装 wget https://pypi.python.org/packages/99/ ...

  8. mybatis14--注解的配置

    去掉对应的mapper映射文件 在dao文件中增加注解 public interface StudentDao { /** * 新增学生信息 */ @Insert(value="insert ...

  9. hibernate06--参数的绑定

    创建Dept实体类 以及 对应的 Dept.hbm.xml文件 /** * @author 小豆腐 * *部门的实体类 */ public class Dept { private Integer d ...

  10. windows 安装 Apache、php、mysql及其配置(转载)

    此文包括的注意内容:软件版本及下载地址Apache2.4的配置和安装php7.0的配置mysql5.5的安装常见问题及解决方法1.软件版本Windows server 2008 r2+ 64位Apac ...