在 Ajax 中进行 XML 处理,第 3 部分: 使用 JSON 并避免使用代理

29、XML、JSON与Ajax技术详解 本文详细介绍了XML、JSON和Ajax三种关键技术的特点、使用方法及适用场景。XML适用于需要严格结构和验证的数据通信与存储,JSON作为一种轻量级数据交换格式,广泛应用于前后端数据交互,而Ajax则通过异步请求提升Web应用的用户体验。文章还结合示例展示了如何使用JSON与Ajax构建交互式绘图网格,并提供了技术对比与选择建议,帮助开发者在实际项目中灵活运用这些技术。 阅读详情

前两部分介绍了三种方法创建可重用的天气面板。这些方法都采用了 Asynchronous JavaScript™ + XML (Ajax) 技术,特别是 JavaScript XMLHttpRequest 对象来实现天气面板库。这些方法都使用了某种形式的 Web 代理将 XML 天气数据从 National Weather Service (NWS) XML 搬到我的服务器上,以避免 Ajax 的同一域问题。

本系列的 第 1 部分 详细讨论了同一域 问题,出于安全上的考虑将 XMLHttp 请求限制到提供原始 Web 页面的同一台服务器上。实际上,很多 Ajax 应用程序都需要超出一台服务器范围之外的其他数据。因此设计的时候必须确定访问 Web 服务器配置(比如创建 Apache ProxyPass 规则)还是创建专门的服务器脚本。

实践证明,还有另一种办法。它避免了同一域问题,程序员不需要处理上面所述的任务。

常用缩写术语
  • DOM:文档对象模型
  • HTML:超文本标记语言
  • RSS:富站点摘要
  • XML:可扩展标记语言
  • XSLT:可扩展样式表语言转换

方法 4 需要的工具

详细讨论天气面板库的最后一种实现之前,首先介绍一下所需的工具:

  • Yahoo! Pipes
  • JSON
  • 动态脚本标记

Yahoo! Pipes

Yahoo! Pipes 是一种基于 Web 的工具,可以聚合能够通过 Web 访问的不同类型的数据,比如 RSS 提要。Yahoo! Pipes 使用图形化编辑器(如 图 1)编辑器创建,该编辑器可在标准 Web 浏览器中运行,如 Windows® Internet Explorer® 或 Firefox。


图 1. Yahoo! Pipes 编辑器
Yahoo! Pipes 编辑器

可通过把模块从工具面板上拖拉布置到画布上来创建管道。模块输出到另一个模块输入之间的管道将模块联系起来。

完成的 Yahoo! Pipe 有一个惟一的 URL。访问该 URL 时,Pipe 逻辑在 Yahoo! 服务器上执行。服务器处理所有的数据访问,执行数据操作并输出结果。默认情况下数据以 RSS 格式输出,但是允许在 URL 中指定其他数据格式,包括 JSON。很快将看到能够以 JSON 格式输出数据这一点至关重要。

天气面板模块使用的 NWS 数据可作为 Yahoo! Pipes 的数据源。四字符 NWS 站点 ID 可作为 Yahoo! Pipe URL 的参数。

图 1 显示了最后一种天气面板实现所使用的管道。虽然 Yahoo! Pipes 能够完成非常复杂的数据处理功能,但这里只有一个目的:将 NWS 数据从 XML 转换成 JSON。

JSON

前面已经多次提到过 JSON。它是什么,我为何要在天气面板应用程序中使用呢?

JSON 即 JavaScript Object Notation,JavaScript 语言本身支持的一种数据格式。和需要 JavaScript 程序解析的 XML 不同,JSON 就是 JavaScript 代码。

作为 JSON 和 XML 的比较,首先看看弗吉尼亚州 Richmond NWS 数据的 XML 版本,如 清单 1 所示。


清单 1. XML 格式的 NWS 数据

<? xml version="1.0" encoding="ISO-8859-1" ?>  
< current_observation  version ="1.0"
 xmlns:xsd
="http://www.w3.org/2001/XMLSchema"
 xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation
=
 "http://www.weather.gov/data/current_obs/current_observation.xsd"
>

 
< location > Richmond International Airport, VA </ location >
 
< station_id > KRIC </ station_id >
 
< observation_time >
 Last Updated on Jan 26, 1:54 pm EST
 
</ observation_time >
 
< weather > Mostly Cloudy </ weather >
 
< temperature_string > 41 F (5 C) </ temperature_string >
 
< relative_humidity > 32 </ relative_humidity >
 
< wind_string > Calm </ wind_string >
 
< visibility_mi > 10.00 </ visibility_mi >
 
< icon_url_base >
 http://weather.gov/weather/images/fcicons/
 
</ icon_url_base >
 
< icon_url_name > bkn.jpg </ icon_url_name >

</ current_observation >

清单 2 是这些数据的 JSON 版本。


清单 2. 转化成 JSON 格式的 NWS 数据

{
 
" count " :  1 ,
 
" value " :
 {
" title " :  " NOAA Regional Weather " ,
 
" description " :  " Pipes Output " ,
 
" link " :  " http://pipes.yahoo.com/pipes/pipe.info?_id=CI6HgSh43BGP8nmJouNLYQ " ,
 
" callback " :  "" ,
 
" items " :
 [
 {
 
" location " :  " Richmond International Airport, VA " ,
 
" station_id " :  " KRIC " ,
 
" observation_time " :  " Last Updated on Jan 26, 1:54 pm EST " ,
 
" weather " :  " Mostly Cloudy " ,
 
" temperature_string " :  " 41 F (5 C) " ,
 
" relative_humidity " :  " 32 " ,
 
" wind_string " :  " Calm " ,
 
" visibility_mi " :  " 10.00 " ,
 
" icon_url_base " :  " http://weather.gov/weather/images/fcicons/ " ,
 
" icon_url_name " :  " bkn.jpg " ,
 }
 ]
 }
}

简单地说,JSON 就是一种 JavaScript 数据结构。上面清单中的 JSON 可以方便地赋给 JavaScript 变量然后引用,如 清单 3 所示。


清单 3. 在 JavaScript 代码中访问 JSON 数据结构

                
var weather = {
 "count": 1,
 "value":
 {
 "items":
 [
 {
 "location": "Richmond International Airport, VA",
 ...
 }
 ]
 }
 };

alert (weather.value.items[0].location);

上述 JavaScript 代码片段将缩减后的 JSON 数据赋给 JavaScript 变量 weather。location 元素作为 JavaScript alert() 函数的参数引用。地点数据显示在弹出的警告窗口中,如 图 2 所示。


图 2. 通过 JSON 显示在 alert() 中的地点
通过 JSON 显示在 alert() 中的地点

和访问等价的 XML DOM 结构相比,多数 JavaScript 程序员认为引用 JSON 数据结构更简单更直观。这也足以说明为何在 Ajax 应用程序中这种数据结构越来越普遍。

但是 JSON 吸引 Ajax 开发人员还有另一个原因:通过某种 JavaScript 技巧,JSON 可以避免代理数据。

动态脚本标记

前述三种天气面板库的实现方法有一个共同的特点。浏览器中运行的 JavaScript 程序必须(通过 XMLHttp 请求)从我自己的 服务器上请求数据。这是由于 XMLHttp 请求的同一域限制造成的。

此前有两种方法使用 Apache ProxyPass 规则来解决这个问题,还有一种使用专用的服务器端脚本从 NWS 服务器上获取数据。

但是如果不能改变服务器配置或者不能运行服务器端脚本怎么办呢?

有一种技术允许 JavaScript 程序访问其他域中服务器上的数据。这种技术有时候被称为脚本标记 hack。

为了说明其工作原理,首先来看看 HTML 脚本标记。通常嵌入 Web 页面作为包含 JavaScript 代码库的一种办法,如 清单 4 所示。


清单 4. HTML script 标记

                
<html>
 <head>
 <title>An Example</title>
 <script language="JavaScript" src="some_javascript_code.js"></script>
            

清单 4 显示了一个 Web 页面中的前面几行。最后一行的脚本标记说明,将从服务器上加载名为 some_javascript_code.js 的 JavaScript 源文件。src 属性指定了脚本位置的 URL。该例中的脚本位于同一台服务器上,但并非必须如此。可以包含任务服务器上的 JavaScript 代码。

这就意味着使用脚本标记可把 JSON 数据加载到浏览器中,后者恰恰是 JavaScript 代码。对于天气面板应用程序来说似乎意义不大,因为脚本标记本身就是打开页面时加载的 HTML 的一部分。对于 Ajax 解决方案,需要在页面加载之后 发送服务器请求。

不过 JavaScript 代码可以操纵 Web 页面 DOM。可以添加和修改 Web 页面中的数据。如果在 JavaScript 代码中动态创建脚本标记并添加到 DOM 中会怎么样呢?结果如 清单 5 所示。


清单 5. 动态创建 script 标记

                
var head = document.getElementsByTagName("head").item(0);
var script = document.createElement ("script");
script.src = "some_javascript_code.js";
head.appendChild (script);

执行后将在当前页面的 head 标记中增加一个新的 script 标记。它相当于 清单 4 中的 HTML 片段,只不过 some_javascript_code.js 中的 JavaScript 代码是在页面加载之后又加载的。

方法 4:JSON 和动态脚本标记

您可能怀疑这对于天气面板库来说有什么价值。假设 some_javascript_code.js 文件的内容如下:

alert ("Hello!");

一旦 JavaScript 文件加载到浏览器中, JavaScript 解释器就会运行包含的任何可执行代码。因此会立刻显示一个警告窗口。

由于从 Yahoo! Pipes 生成的 JSON 数据是 JavaScript 代码,所以也可通过上述技术动态加载。但 Yahoo! Pipes JSON 数据不是可执行 JavaScript 代码,而仅仅是一种 JavaScript 数据结构。可以加载到浏览器,但是如何知道什么时候加载的?

在创建动态标记之前设置某种定时器,然后假定 JSON 在某个时间,比如说 3 秒之后到达,这种方法初看起来似乎可行。从好的方面说这种方法不可靠,而且实践证明这是不必要的。

每个 Yahoo! Pipe 都有惟一的 URL。清单 6 显示了 NWS 管道的 URL。


清单 6. NWS Yahoo! Pipe URL

                
http://pipes.yahoo.com/pipes/pipe.run?
&_id=CI6HgSh43BGP8nmJouNLYQ
&textinput1=KRIC
&_run=1
&_render=json
&_callback=myfunction
            

为了更清楚的看到不同的参数,我将 URL 分成了几行。_id 参数标识了这是我使用的管道,textinput1 给出了 NWS 站点 ID。_run 参数说明希望执行该管道,_render 告诉 Yahoo! Pipes 服务器以 JSON 格式输出数据。

最后一个参数 _callback 做什么呢?它告诉 Yahoo! 服务器将数据封装到指定的函数调用中,即 myfunction()。Yahoo! Pipes 返回 JavaScript 程序的结果如下:

myfunction ( {"count":1, ... } );

为了简化我省略了大部分 JSON 数据,但道理您应该清楚了。和前面加载包含 alert() 调用的 JavaScript 文件一样,JavaScript 解释器执行上述代码,调用 myfunction() 并把请求的全部数据传递给该函数调用。

利用回调函数完全不需要知道服务器什么时候完成 JSON 数据的加载。

那么回调函数中有什么?对于我的天气面板库,它完成天气数据的格式化,和方法 1 中的 XMLHttpRequest 响应函数非常类似。在方法 1 中,我从 responseXML DOM 对象中提取需要的数据。这里只需要访问 JSON 数据结构,如 清单 7 中的 jsonHandler 方法所示,这就是天气面板 JSON 方法的全部代码。


清单 7. 天气面板库的 JSON/Yahoo! Pipes 实现:weather_badge_ypipes_json.js

var  yp  =   new  Array();
var  idx  =   0 ;

function  weather_badge (nws_id, div_name)  {

 
var callback_obj = "yp[" + idx + "]";

 
var url = "http://pipes.yahoo.com/pipes/pipe.run?"
 
+ "&_id=CI6HgSh43BGP8nmJouNLYQ"
 
+ "&textinput1=" + nws_id
 
+ "&_run=1"
 
+ "&_render=json";

 yp[idx] 
= new YPipesWeather (url, div_name, callback_obj);
 yp[idx].requestJSON ();
 idx
++;
}


//  The YPipesWeather constructor

function  YPipesWeather (ypipes_url, div_name, obj_name)  {
 
this.url = ypipes_url + "&_callback=" + obj_name + ".jsonHandler";
 
this.div_name = div_name;
}


//  The requestJSON method: it builds the script tag
//
 that launches our request to the Yahoo! server.

YPipesWeather.prototype.requestJSON 
=   function  ()  {

 
// Dynamically create a script tag. This initiates
 // a request to the Yahoo! server.

 
var head = document.getElementsByTagName("head").item(0);
 
var script = document.createElement ("script");
 script.src 
= this.url;
 head.appendChild (script);
}


//  The jsonHandler method: this is our callback function.
//
 It's called when the JSON is returned to our browser
//
 from Yahoo!.

YPipesWeather.prototype.jsonHandler 
=   function  (json)  {
 
var div = document.getElementById (this.div_name);

 
var weather = json.value.items[0];

 
var html = "";

 html 
+= "<center> ";

 html 
+= "<b>" + weather.location + "</b><br> ";

 html 
+= weather.weather + "<br>";

 html 
+= "<img border='0' src='"
 
+ weather.icon_url_base
 
+ weather.icon_url_name
 
+ "'><br>";

 html 
+= weather.temperature_string + "<br>";

 html 
+= "Wind: " + weather.wind_string + "<br>";
 html 
+= "Humidity: " + weather.relative_humidity + "%<br>";
 html 
+= "Visibility: " + weather.visibility_mi + " miles<br>";

 html 
+= "<br><span style='font-size: 0.8em; font-weight: bold;'>"
 
+ weather.observation_time + "</span><br>";

 html 
+= "</center> ";

 div.innerHTML 
= html;

}

和前面的所有方法一样,也实现了 weather_badge() 函数。并向该函数传递四字符的 NWS 站点 ID 和 HTML DIV 标记名称。DIV 标记就是呈现天气面板的页面区域。

其他代码定义了名为 YPipesWeather 的 JavaScript 对象。该对象包括三个函数:构造器、动态创建脚本标记(从而运行 Yahoo! Pipe)的方法和一个回调函数。

结果是一个 JavaScript 库,虽然没有用 XMLHttpRequest 对象,但行为和前面三种方法相同。

图 3 显示了最后这种方法的数据管道。除了最开始打开页面,不需要再访问我的 Web 服务器。


图 3. JSON 和动态脚本标记
JSON 和动态脚本标记

清单 8 显示了利用天气面板库的 JSON 版本的示例 HTML Web 页面。


清单 8. 在 Web 页面中使用 JSON 天气面板库

< html >
 
< head >
 
< title > JSON Script Tag Example </ title >
 
< link  rel ="stylesheet"  type ="text/css"  href ="weather.css"   />
 
< script  language ="JavaScript"  
 src
="weather_badge_ypipes_json.js" >
 
</ script >
 
< script >
 
function init () {
 weather_badge (
"KRIC", "target1");
 }

 
</ script >
 
</ head >

 
< body  onload ="init();" >
 
< h3 > JSON Script Tag Example </ h3 >

 
< div  class ="wbadge"  id ="target1" >
 Loading...
 
</ div >
 
</ body >
</ html >

这四种方法的比较

回顾一下,我介绍了实现 Ajax 天气面板库的四种不同方法

  • 从 NWS 服务器读取 XML 数据
  • 解析 XML 数据提取需要的部分
  • 将提取的数据格式化为 HTML
  • 在 Web 页面中显示 HTML

表 1 描述了这四种方法。


表 1. 天气面板库的四种版本

方法说明
1:遍历 DOM 树服务器上的简单 Web 代理从 NWS 服务器获取数据并发送给浏览器。在浏览器中,JavaScript 解释器从返回的 responseXML DOM 树提取数据,设置 HTML 格式并插入 Web 页面的 DIV 标记。
2:服务器上的 XSLT服务器端脚本从 NWS 服务器获取数据,使用 XSLT 将其转换成 HTML,然后将 HTML 片段返回浏览器。浏览器直接将其插入 DIV 标记。
3:客户端 XSLT这种方法使用简单的 Web 代理(和方法 1 相同)将 XML 数据返回浏览器。和方法 1 不同的是,它利用 XSLT 将 XML 转换成 HTML 并插入 DIV 标记。
4:JSON 和动态脚本标记使用外部服务(Yahoo! Pipes)将 NWS 数据从 XML 转换为 JSON。天气面板库利用专门的 JSON 和 JavaScript 语言把转换后的数据返回浏览器 — 不需要代理。

哪种方法最好?即便像这样一个简单的程序,答案也不是显而易见的。最佳解决方案有什么特点?

最后一种办法使用 JSON 避免了通过代理的需要。如果情况不允许修改服务器配置或者不能编写服务器脚本,这种办法实现起来最简单。但副作用是必须捆绑到第三方 Web 服务 Yahoo! Pipes。如果 Yahoo! 改变了服务,是否会破坏我的解决方案?

在服务器端将 XML 转换成 HTML 的方法 2 又如何呢?把大部分工作交给服务器是否合适?结论和您在多大程度上信赖 JavaScript 语言(跨越多种浏览器版本)有关。方法 3 说明了如何将大部分处理放到浏览器上。但是和能够控制的服务器脚本不同,用户使用的浏览器可能千差万别。而且如第 2 部分所述,不同的浏览器采用不同的方式完成 XSLT 处理这类任务。和后端服务器脚本相比,JavaScript 代码的调试更困难。除非所有浏览器上的 JavaScript 语言都是标准的,尽量减少 JavaScript 代码是一种谨慎的策略。

XSLT 又怎么样呢?使用 XSLT 抽象 XML 到 HTML 转换是否合理?方法 1 给出了一种替代方案,在 JavaScript 代码中访问 XML DOM 树;方法 4 给出了另一种方法,利用软件服务把 XML 转换成 JSON 然后访问 JSON 数据结构。使用 XSLT 很容易把转换从服务器转移到浏览器,反之亦然,不需要改变 XSLT 代码。XSLT 抽象层的代价是什么?我打赌方法 1 比方法 3 更快,因为前者直接访问大量已经解析的 XML 数据。浏览器端 XSLT 版本需要对这些 XML 数据运行 XSLT 处理程序 — 无疑需要更多的处理。

没有一种答案绝对正确,即便是天气面板这么简单的问题。可以客观的分析算法效率和执行速度,但实践中最终会遇到某些主观的问题。XSLT 抽象是否抵得上速度上的损失?对这类问题还需要考虑速度吗?在浏览器上运行更合理吗?可靠、简单和容易维护重要吗?

我使用哪种方法?

那么,如果我不是为了介绍这些技术来举天气面板的例子,我会用哪种方法呢?如果我能够肯定这不是一个实验性的解决方案,我会选择对方法 1 略加修改,即访问 XMLHttpRequest 返回的 XML DOM 树。如果这是很多面板应用程序中的第一个(可能还有用于股市图或者通用新闻提要显示的应用程序),我会选择更抽象的方法,比如那两种 XSLT 解决方案。如果希望别人在很多不同的服务器上使用面板,我将选择 JSON/Yahoo! Pipes 方法。如果这些需求互相交叉,我宁愿回到最初的解决方案。

下载

描述名字大小下载方法
本系列的示例代码x-xmlajax.zip194KBHTTP

 

YOLOv11改进策略【Head】| AFPN渐进式自适应特征金字塔,增加针对小目标的检测头(附模块详解和完整配置步骤) 一、本文介绍 本文利用AFPN对YOLOv11的网络模型进行优化提升。AFPN采用渐近式融合及自适应空间融合操作。通过渐近式架构,逐步整合不同层级特征,有效避免非相邻层级间因语义差距过大导致的信息丢失或降级问题,确保在多尺度特征融合过程中既能保留高层语义信息,又能融入低层细节特征。本文将AFPN应用于YOLOv11中,并配置了针对小目标的检测头,能显著增强模型对不同尺度目标的检测能力,使其在复杂场景下更聚焦于目标物体特征,减少背景等无关信息的影响。 专栏目录:YOLOv11改进目录一览 | 涉及卷积层、 阅读详情

相关推荐

机械臂速成小指南(七):从旋转矩阵到齐次变换——机械臂位姿的数学表达

本文详细介绍了机械臂位姿描述的数学基础,包括旋转矩阵、欧拉角和齐次变换等核心概念。通过解析旋转矩阵的几何意义和合成方法,以及欧拉角的直观描述,帮助读者理解机械臂位姿的数学表达。文章还探讨了齐次变换在工程实践中的应用,并提供了数值稳定性、坐标系约定和计算效率等实用建议。

cuda7parallel的博客 835

AJAX里应该使用XML还是JSON?

之前讲过AJAX的相关理论,里面提到了XML,但是其实在实际开发工程中与AJAX一起使用到的更多的是JSON而不是XML,所以本文来讲讲在AJAX中使用JSON和XML有什么区别。 AJAX的全称是Asynchronous JavaScript And XML(异步的JS和XML),说明当初这门技术设想的最佳拍档是JS和XML。很可惜,现在大家更倾向于JS+JSON。所以,也有人认为AJAX应该干脆改名为AJAJ得了(Asynchronous JavaScript And JSON)。 之前这篇文章AJAX

weixin_44066534的博客 640

避坑指南:雅特力AT32F403A在Keil5中的V2库配置常见问题解析

本文详细解析了国产MCU雅特力AT32F403A在Keil5中配置V2库的常见问题,包括工程创建、库文件配置、编译错误和外设设置等关键环节。针对项目文件夹结构混乱、芯片型号选择错误、头文件路径设置不当等典型问题提供实用解决方案,帮助开发者高效避坑,提升开发效率。

weixin_30335575的博客 375

AJAX 与 XML

本文解析AJAX与XML技术,介绍AJAX通过XMLHttpRequest或fetch API实现异步通信,无需重载页面即可与服务器交互。详细说明XML数据处理方法,包括DOM解析器使用示例。文章对比XML与JSON格式,指出JSON更轻量易用但XML仍适用于特定场景。提供完整代码示例展示如何获取XML数据并动态更新网页内容。总结指出,尽管JSON日益流行,AJAX与XML组合仍为网页应用提供强大的异步数据交互能力。

2501_92679424的博客 1504

Unity3D用c#脚本调用前端javascript函数:H5获取unity - webgl 加载并初始化完成的消息

unity3d发布的Webgl 可以作为静态文件加载到H5页面中,并通过javascript 调用unity内置的C#脚本函数,详见Webgl调用unity api。而往往我们需要知道Webgl ready的消息,本文将给出unity 内部调用javascript函数的方案加以解决。

Bravo 2475

一、5.8GHz射频接收机链路仿真

5.8GHz射频接收机链路仿真 一、5.8GHz射频接收机链路仿真 文章目录5.8GHz射频接收机链路仿真目的一、原理1、仿真工具2、二次下变频超外超接收机二、要求三、内容总结 目的   1、熟悉射频接收机整体结构。   2、学习使用MATLAB工具进行行为级仿真。   3、进行简单的通信链路预算。   4、直观感受接收机各个模块对整体性能的影响。   5、分析增益、线性度、噪声系数等参数。 一、原理 1、仿真工具   MATLAB是一款功能强大的数学软件,针对不同领域提供各种工具箱,帮助设计者快

平乾的博客 6760

ajax请求json和xml数据及对json和xml格式数据的解析

ajax请求json和xml数据及对json和xml格式数据的解析一、ajax请求json数据并解析ajax的写法:json数据解析:请求json经常出现的跨域报错:二、ajax请求xml数据并解析ajax的写法:xml数据解析: 最近写插件的时候,遇到xml格式的数据,以前用xml比较少,一直都是json格式。这里对json和xml做个总结。 一、ajax请求json数据并解析 ajax的写...

十一月廿七风雨大作 7226

华为OD机试真题 新系统【查找能被整除的最大整数】

华为OD新系统机试真题【查找能被整除的最大整数】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【查找能被整除的最大整数】

qq_45776114的博客 672

Ajax处理XML、HTML、JSON三种数据格式的方法

服务器的编程语言只能返回三种格式的数据:XML、HTML、JSON。Ajax要在前端浏览器处理这三种格式。 1、HTML HTML是三种格式中最好处理的一种,HTML由普通文本组成,文本将存储在responseText中,它已经是所希望的文本,不用解析,直接用innerHTML属性使用就可以。 eg:如果要把data.htmlL里的内容显示在另一个index.html中。 data

qq_22655689的博客 3912

军品研制过程评审活动-(一)论证阶段

军品研制过程评审活动-(一)论证阶段

Abel的博客 3815

PD3.0详解 协议的时序timer和counter计数

前面介绍了关于PD协议的交互,还有协议层数据各个字段的含义,但是一直没有系统的说关于协议的时序,还有部分counter,就是协议允许发送的次数,或者一些其他计数。 大师匈今天说一下关于这方面的东西,这些东西都是非常关键的东西,但是相对来说PD标准内对时序的要求还是比较宽泛,非常容易能够实现这样的要求。 Timer 1、CRCReceiveTimer 0.9~1.1ms 表示每次通信收到goodcrc的时间,必须在这个时间内收到goodcrc, 我们要注意不是在0.9~1.1ms内,而是第三方可以在这个范

大师匈的博客 5007

Ajax 解释Ajax的XML和JSON格式,操作Ajax的几种封装方法【案例+解释】(二)

arr[3] = array("name"=>"红楼梦","author"=>"曹雪芹","desc"=>"一个封建王朝的缩影。$arr[1] = array("name"=>"水浒传","author"=>"施耐庵","desc"=>"108条好汉的故事。$arr[2] = array("name"=>"西游记","author"=>"吴承恩","desc"=>"佛教与道教的斗争。//data就是要传递的参数,也就是之前的params,这里写成了对象的形式。相比较xml格式,体积小,传输快,解析方便。

2401_84831762的博客 1014

SAP FICO 中的 F-02 :概念、使用场景及案例解析

在 SAP FICO (财务会计与管理会计) 模块中,F-02 是一个用于录入总账凭证的事务代码。这个事务代码主要用于手动输入总账凭证,适用于各类财务交易,例如资产购入、费用支付、收入确认等。F-02 的重要性在于,它允许财务人员在 SAP 系统中创建凭证,并确保这些凭证能够正确影响总账账户。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2060

ajax的基本使用(xml和json)

1.什么是ajax   Ajax即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术.Ajax=异步JavaScript和XML(标准通用标记语言的子集).通过后台与服务器进行少量数据交换,Ajax可以使用网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某个部分进行更新(无刷新技术)....

weixin_43555093的博客 973

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Ajax学习与使用(HTML、XML、JSON格式数据的处理方法、区别)

什么是Ajax: Ajax(即异步 JavaScript 和 XML)是一种 Web 应用程序开发的手段,它采用客户端脚本与 Web 服务器交换数据。所以,不必采用会中断交互的完整页面刷新,就可以动态地更新 Web 页面。使用 Ajax,可以创建更加丰富、更加动态的 Web 应用程序用户界面,其即时性与可用性甚至能够接近本机桌面应用程序。 为什么使用Ajax: Ajax技术解决了很多其它技术解决不了的问题, 比如: 页面无刷新的动态数据交换-----对比传统页面的数据交换 局部刷新页面【验证用户名

x瓜皮的博客 984

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Ajax中的JSON

Ajax中的JSON 构建JSON格式数据 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Ajax中的JSON</title> </head&gt

码小余の博客 3721

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

浅谈Ajax返回数据的3种格式——HTML、XML、JSON

1、数据格式提要: 在服务器端Ajax是一门与语言无关的技术。在业务逻辑层使用何种服务器端语言都可以; 从服务器端接收数据的时候,那些数据必须以浏览器能够理解的格式来发送,服务器端的编程语言只能以如下3种格式返回数据——XML、JSON、HTML。 2、解析HTML HTML由一些普通的文本组成,如果服务器通过XMLHttpRequest对象来发送HTML,文本将存储在Response

筱葭的博客 9173

jQuery中$.ajax解析xml、json格式数据

$.ajax()方法参数详解: 1、利用ajax解析xml 2、利用ajax解析json

ncepu307的专栏 3752

Ajax中的XML与JSON

Ajax中两种常见的数据传输方式分别为XML和JSON,下面详细介绍这两种格式在Ajax中的用法以及区别!

u013447464的博客 1258

ajax 通过json xml文件,php+Ajax处理xml与json格式数据的方法示例

本文实例讲述了php+Ajax处理xml与json格式数据的方法。分享给大家供大家参考,具体如下:一、ajax如何处理xml数据格式register.php只需修改上一篇《php+Ajax无刷新验证用户名操作》中chuli函数部分functionchuli(){// window.alert("cuhli函数被调用"+myXmlHttpRequest.readyState);//我要取出从regi...

weixin_31025595的博客 321

ajax用xml传递参数,Ajax如何传输Json和xml数据

ajax传输xml数据:只要把数据封装成xml格式就可以实现传输,前台js用responseXML接收xml参数,后台读取用流和dom4j来解析前台页面Ajax XML数据处理演示//get方式ajaxfunction send1(){alert("ok");var name=document.getElementsByName("name")[0].value;var age=document....

weixin_34927903的博客 706

ajax--XML、AJAX简介、express框架使用、AJAX操作的基本步骤

AJAX不是新的编程语言,而是一种将现有的标准组合在一起使用的新方式。最开始AJAX进行数据交换的格式是XML,服务器端给客户端返回的结果就是XML格式的字符串,前端的JS在接到这个结果后对其内容进行解析,把数据提取出来并对数据进行处理。现在AJAX不用XML,而是JSON,JSON更加简洁,在数据转换方面更加容易。,比如服务器端将数据使用XML的形式传给客户端(前端),而HTML的作用是在。{“name”:“孙悟空”,“age”:18,“gender”:“男”}XML与HTML类似,不同的是HTML中。

qq_51476492的博客 1263

前段部分:Json、Ajax

(以下是个人对一些前端知识的简单理解) —&gt;Json: Json JavaScript 对象表示法(JavaScript Object Notation) 是一种存储数据的方式。 1.创建Json对象: var gareen = {“name”:“李白”,“hp”:666}; 这样就创建了一个JSON 对象 JSON对象由 名称/值对组成 名称和值之间用冒号:隔开 名称必须用双引号" 包含起...

qq_42688532的博客 222

训练数据示例

针对“规格书生成测试用例脚本”的任务,在 LLaMA-Factory 中使用即可。关键是把“规格书内容”放进input字段,把“期望的脚本输出”放进output字段。

liuxs2009的专栏 57
上一篇: 用 Ajax 和 del.icio.us 创建自己的信息空间(3)
下一篇: RichFaces 简介,将类似桌面的特性添加到浏览器应用程序中
phantomhu
博客等级 码龄23年 70粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值