Ajax应用需要注意的事项

  接触Ajax,那时候的Ajax支持还不是很好,都要涉及底层,没有现成的框架给你调用。现在把常见的问题列举如下。

  1、编码问题

  注意AJAX要取的文件是UTF-8编码的。GB2312编码传回BROWSE后中文会乱码。如果用VBScript的话还可以转化,但是VBScript只有IE支持。

  所以,选择UTF-8编码是一劳永逸的办法。

  2、清除服务器端文件的缓存。

  当用XMLHTTP取回一个服务器端的文件,文件会缓存在浏览器端。下次再取文件时,不会再去服务器取文件。所以,对于刷新频繁的文件,一定要指定文件的过期时间。

  3、什么时候使用XML

  Ajax里的X指的就是XML,可是真的XML就是最好的解决方案吗?XML和JSON相比,在传递同等量的信息时,XML文件更大。所以往往JSON是更好的选择。不过,你还可以直接输出Javascript执行,这样的效率往往更高:不需要写复杂的回调函数。不过安全问题也要更加注意。health.hljmlyfcyy.com

  4、两种Ajax的方式

  一些人的基础可能还不是很扎实,并不非常了解Ajax的原理,那你知道Ajax由哪两种方式来实现吗?

  最古老的一种是iframe来加载一个包含js的网页,这个网页里的脚本用 top.function来调用parent页面里的函数。但是,你可以指定a的target和form的target,这样就不用序列化表单,实际上能很方便地发送表单。当然后期就稍微有点麻烦,出现问题也不容易解决。

  后来就是xmlhttp组件的方式。什么时候挑选什么方式,这也是一种技巧。

  5、跨域问题

  如果一个脚本不在同一个域,两者就不能相互调用。如果iframe里是其他域的网页,就不能访问parent页的具体内容。如果需要访问远程的XML,比如RSS FEED,建议可以用服务器端脚本来中转。在访问量不是非常大的情况下还是很很好的一个解决办法。不过,翻阅JQuery手册发现它能调用(执行)跨域的脚本,具体怎么做的还不是很清楚。大家可以下载JQUERY未加密的版本来研究下。

  6、安全问题

  在服务器端,虽然客户端能预处理很多东西,你仍要注意一句话:一切来自客户端的变量都是有害的。不在Ajax的情况下很多程序员往往会放松警惕。这使得安全问题更隐蔽。如果是开源程序的话那么问题就会在网友面前马上暴露出来;黑盒的情况下,往往被入侵了还是找不出原因。rl.hrbfc120.com

  结语:实际上在这个框架横行的年代直接编写Ajax实现代码的机会并不多,很多JS框架都集成了AJAX调用函数,一些服务器端的框架,例如THINKPHP也集成了AJAX。但是,理解一些底层的东西,还是有利于排除BUG,提高AJAX应用的性能的。

转载于:https://www.cnblogs.com/hljmly/p/5457312.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/374711.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Xcode插件

古人云“工欲善其事必先利其器”,打造一个强大的开发环境,是立即提升自身战斗力的绝佳途径!以下是搜集的一些有力的XCode插件。1.全能搜索家CodePilot 2.0你要找的是文件?是文件夹?是代码?Never Mind&#…

JBoss Portal上的“ Hello World” portlet

Portlet概述 本教程将向您展示如何创建和部署简单的Portlet。 Portlet是基于Java技术的Web组件,可以处理请求并生成动态内容。 Portlet不是自治实体,但是由Portlet容器管理,Portlet容器为Portlet执行提供了必要的运行时环境。 应当注意&…

Jenkins + GitHub + fir-cli 一行命令从源码到fir.im

上周简书作者宣X_x 分享了一篇文章——用JenkinsGitHubXcodefir搭了一个持续集成环境,整个记录见(传送门)。 _______ 其实fir.im为我们提供了一个更简单的方式:fir-cli,我们只需要一条命令,就可以从源代码到fir.im。不需要Jenkin…

力扣9. 回文数

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 …

使用Maven编译Tomcat源码

使用Maven编译Tomcat源码 准备工作 编译工具:Intellij Idea 15.0.2Tomcat版本:7.0.69 下载链接JDK版本:1.7.0_80Maven版本:3.05编译步骤 1. 在工作空间中建立目录 TomcatSource,下载源码解压到此文件夹,完成后目录结构…

Java Persistence API:快速入门

各位读者好! 在我的一些朋友提出无数请求之后,我决定写一篇关于Java Persistence API的简短文章。 面向对象的编程范式是当​​今最流行和使用最广泛的模型,它具有无缝建模现实生活实体的能力,因此它胜过大多数其他范式。 但是&am…

线性回归、梯度下降(Linear Regression、Gradient Descent)

转载请注明出自BYRans博客:http://www.cnblogs.com/BYRans/ 实例 首先举个例子,假设我们有一个二手房交易记录的数据集,已知房屋面积、卧室数量和房屋的交易价格,如下表: 假如有一个房子要卖,我们希望通过上…

力扣35. 搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 二分搜索法 class Solution {public int searchInsert(int[] nums…

@Resource和@Autowired作用和区别

区别: 1,Resource(JSR-250标准注解,推荐使用它来代替Spring专有的Autowired注解) 2,Spring 不但支持自己定义的Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是Resourc…

使用Oracle WebLogic对应用程序外部的EJB的引用

在之前的文章中,我们对EJB v。3.0及其为您提供的用于构建Java EE应用程序的可移植机制进行了概述。 由于Java EE规范都是关于可移植性的,因此冒着重复自己的风险,我们经常强调EJB v。3.0规范上仍然存在最重要的可移植性限制:没有在…

基于verilog的分频器设计(奇偶分频原理及其电路实现:上)

在一个数字系统中往往需要多种频率的时钟脉冲作为驱动源,这样就需要对FPGA的系统时钟(频率太高)进行分频。分频器主要分为奇数分频,偶数分频,半整数分频和小数分频,在对时钟要求不是很严格的FPGA系统中&…

Java判断布尔类型是否相等

public class Solution{public static void main(String args[]){boolean x1 true;boolean x2 false;boolean x3 true;if(x1!x2){System.out.println("布尔类型变量判断是否相等可以用!");}if(x1x3){System.out.println("布尔类型变量判断是否相等可以用&quo…

mysql 中文乱码解决方法

最近在.NET 项目中用EF连接mysql,插入中文数据时老是显示乱码,在创建表时都已将编码指定了,但是还是出现乱码,折腾了一阵子才发现在连接字符串里面也要加上指定编码 Character Setutf8(serverXXXXX;user idXXXX;passwordXXXXX;Cha…

提升您的休眠引擎

是否想知道如何调整基于Hibernate的应用程序以获得无缝的可伸缩性和最佳性能? 本文探讨了基于Hibernate的应用程序的调整技术,重点是有效但文献记载不足的调整主题,例如继承映射,二级缓存和增强的序列标识符生成器。 它还提供了一…

力扣53. 最大子序和

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 思路:每个循环中,sum表示以nums[i]结尾的最大子序和,res表示目前得到的最大子序和。当循环结…

Swift中的延迟加载(懒加载)

Swift方式的延迟加载 而在Swift中,你只需一行代码即可实现此机制: lazy var players String[]() 简单、简洁,直入主题。 但你得记住,你必须使用var关键字来定义延迟加载的属性,不能使用let关键字,因为常量…

Spring,Quartz和JavaMail集成教程

Quartz是一个作业调度框架,用于调度要在指定的时间表上执行的作业。JavaMail是一个用于从Java应用程序发送/接收电子邮件的API。 Spring具有集成点,可以集成Quartz和JavaMail,从而使这些API易于使用。 让我们创建一个小型演示应用程序&#x…

Java_Web三大框架之Hibernate操作数据库(三)

使用Hibernate操作数据库需要七个步骤:(1)读取并解析配置文件Configuration conf newConfiguration().configure(); (2)读取并解析映射信息,创建SessionFactorySessionFactory sf conf.buildSessionFacto…

android布局1

第二类:属性值必须为id的引用名“id/id-name” 仅RelativeLayout中有效 android:layout_below 在某元素的下方 android:layout_above 在某元素的的上方 android:layout_toLeftOf 在某元素的左边 android:layout_toRightOf 在某元素的右…

Spring MVC开发–快速教程

这是我们的JCG合作伙伴之一,来自Manoj的有关使用Spring开发Web应用程序的简短教程, 网址为“ The Khangaonkar Report ”。 (注意:对原始帖子进行了少量编辑以提高可读性) Spring MVC使用基于模型视图控制器体系结构&…