作者:莫乂乂_465 | 来源:互联网 | 2014-05-05 09:01
一、读者指引读者指引帮助你把握本文的梗概。以免你看了大半才明白这编文章不合适你,给你造成视觉污染。假如你正在用ASP+XML写一些程序,或者你正在学XML那就值得一看。浏览本
一、读者指引
读者指引帮助你把握本文的梗概。以免你看了大半才明白这编文章不合适你,给你造成视觉污染。
假如你正在用ASP XML写一些程序,或者你正在学XML那就值得一看。
浏览本文须具备的知识,对ASP有基础的懂得,对XML和DOM有基础懂得,假如你不懂得那么你通过学习本文基础上能够撑握ASP+XML和DOM的利用,并能根据本文范写出自已更高级的ASP+XML程序。
二、基础思想
本文思想是基于用ASP和DOM来读取和存储XML数据,并利用XML数据来存储留言信息,达到同用数据库存储数据的功效。
三、XML留言本的上风
或许你会问用ASP+TXT文本也可以达到不用数据库实上留言的功效,不错确实能够做到,而且网上也有很多这样的留言本免费下载,但这里我要讲一下ASP+XML的优胜性。
1、XML+ASP比ASP+TXT速度要快。可能你也发明当TXT文件很少时速度出奇的快,但是随着留言信息的增加TXT文本变大,速度却又是出奇的慢这就是ASP+TXT的弱点。当然我不能说ASP+XML就必定是出奇的快,但是比起ASP+TXT来说是快了很多,当然随着留言信息的增加XML文本增大速度也降落很快,但是比起TXT来说就还是好了很多(这一点可以从WAS测试证实读者可以自行测试),当然ASP+XML比不上数据库,由于数据库对查询做了特别的优化,而XML只是纯文本,在ASP建立对像是要把XML数据全部读进内存中,假如数据量大的话可想而知速度会慢下来。那你也许会问那我什么时候用关系数据库存储数据,又什么时候用XML存储数据呢?我这里也顺便提一下,就是当数据比拟复杂无规率时用XML数据比拟合适,还有就是你打算这些数据要在不同的把持系统上读取应用时那就是XML大显身手的时候了。假如你是普通的数据那么不到要害时刻或不支撑数据库的空间时还是不要用XML文件来存储数据为好。
2、XML数据的易读取性,TXT文本是比拟难把持的,我们必需一行一行的读取判定,而且很多功效无法实上,只能编制比拟简略的留言本,而XML数据则不同了,利用DOM可以轻易的拜访每一个节点,而不是TXT那些烦人的Readline() Witeline()了,我们可以随便的参加删除更新某一个我们感爱好的节点,利用ASP或者JS或者数据岛都可以轻松实上这一点,当然我这里为发考虑兼容性,用了ASP来读取XML数据,而没有用数据岛来读取节点数据(由于只有IE5以上版本才支撑数据岛技巧)而用ASP来实上就不存在这些问了由于客户得到的是HTML文件。
3、XML数据夸把持系统性,只要我们把这些数据存储为XML那么这些数据就能被应何基它语言或系统所辨认,而不用做应何修正。TXT显然不具备这些性能。例如我们在网上的留言信息可以直接被被转换成wap格局在手机上显示。
四、建立存储留言信息的XML文件(List.xml)
我们这里不打算应用DTD,由于我们这是我们自已编制并测试通过的XML数据,所以不需要DTD来验证(假如你对此感爱好当然可以加一个这不影响程序的运行)。现在我们来看看建立一个留言本的基础要素
0、留言ID号--定义为<id>
1、用户名我们--定义为<username>
2、来自那里们--定义为<fromwhere>
3、留言时间定--义为<Posttime>
4、用户主页定--义为<homepage>
5、用户的信箱--定义为<email>
6、留言内容定--义为<text>
当然以上不是必需的读者可以自行命名并加减相干标签,把它们组合起来就得到List.xml的文件了
<?xml version="1.0" encoding="gb2312"?>
<site>
<NewList>
<list>
<id>1</id>
<username>苛子</username>
<fromwhere>中国广州</fromwhere>
<Posttime>01-4-23 18:26:56</Posttime>
<homepage>http://page2000.xiloo.com</homepage>
<email>lucaihui@cmmail.com</email>
<text>这是我的第一个XML文件</text>
</list>
</NewList>
</site>
五、建立显示XML数据的ASP文件(index.asp)
这个文件要实现的功效就是读取并显示XML数据,首先创立一个XML对像然后把XML读进内存中,利用DOM分别出我们所要的数据。
以下为引用的内容:
<%
strSourceFile = Server.MapPath("/") & "\List.xml"
'获取XML文件的路径这里根据你的虚拟目录不同而不同
Set objXML = Server.CreateObject("Microsoft.FreeThreadedXMLDOM")
'以自由线程创立一个XML对像
objXML.load(strSourceFile)'把XML文件读进内存
Set objRootsite = objXML.documentElement.selectSingleNode("NewList")
'选取NewList节点
%>
<html>
<head>
<title>留言本</title>
<meta http-equiv="Content-Type" cOntent="text/html; charset=gb2312">
<style type="text/css">
<!--
td { font-family: "宋体"; font-size: 9pt; text-decoration: none}
a { font-family: "宋体"; font-size: 9pt; color: #0066CC; text-decoration: none}
a:hover { color: #FF6600; text-decoration: underline}
-->
</style>
</head><body bgcolor="#0099CC" text="#000000">
<table width="80%" border="0" cellspacing="1" cellpadding="4" align="center" bgcolor="#CCCCCC">
<tr bgcolor="#000000">
<td colspan="2"><font color="#FFFFFF">留言溥 <a href="PostNew.asp"><font color=#FFFFFF>写新留言</font></a></font></td>
</tr>
<%
PageSize =10'假设每页显示10条留言
AllNodesNum =objRootsite.childNodes.length-1
'获取子节点数据(由于是从节点数从0开端的所最大子节点数要减1)
PageNum=AllNodesNum\PageSize 1'算出总页数
PageNo=request.querystring("PageNo")
if PageNo="" then'假如是每一次获得页面则定位到每一页显示最新的留言
PageNo=PageNum
end if
StarNodes=PageNo*PageSize-1'获得起始节点
EndNodes=(PageNo-1)*PageSize'获得结束节点
if EndNodes<0 then
EndNodes=0
end if
if StarNodes>AllNodesNum then'判定起始节点数是否超过总的节点数
EndNodes=EndNodes-(StarNodes-AllNodesNum)
推荐阅读
-
通过自定义 `TextView`,实现了在用户点击或焦点变化时动态调整字体颜色的效果。该方法利用了 `ColorStateList` 和 `Selector` 资源文件,确保了界面交互的流畅性和视觉效果的提升。具体实现中,通过重写 `onTouchEvent` 和 `onFocusChanged` 方法,精确控制了颜色变化的时机和状态。此外,还对性能进行了优化,确保在高频率操作下依然保持高效响应。 ...
[详细]
蜡笔小新 2024-11-01 14:08:50
-
在将Spring与MyBatis进行整合时,作者遇到了“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”的问题。该问题主要出现在使用XML文件配置DAO层的情况下,而注解方式配置则未出现类似问题。作者详细分析了两个配置文件之间的差异,并最终找到了解决方案。本文将详细介绍问题的原因及解决方法,帮助读者避免类似问题的发生。 ...
[详细]
蜡笔小新 2024-11-01 11:37:01
-
-
本文详细介绍了如何构建和初始化Spring Security认证模块的项目。首先,通过创建一个分布式Maven聚合工程,该工程包含四个模块,分别为core、browser(用于演示)、app等,以构成完整的SeehopeSecurity项目。在项目构建过程中,还涉及日志生成机制,确保能够输出关键信息,便于调试和监控。 ...
[详细]
蜡笔小新 2024-11-01 17:43:00
-
在应用程序中,数据网格视图(DataGridView)的高效应用与优化策略至关重要。本文探讨了多种优化方法,包括但不限于:1)通过合理的数据绑定提升性能;2)利用虚拟模式处理大量数据,减少内存占用;3)在格式化单元格内容时,推荐使用CellParsing事件,以确保数据的准确性和一致性。此外,还介绍了如何通过自定义列类型和优化渲染过程,进一步提升用户体验和系统响应速度。 ...
[详细]
蜡笔小新 2024-11-01 16:14:23
-
为了在Fragment中直接调用Activity的方法,可以通过定义一个接口并让Activity实现该接口来实现。具体步骤包括:首先在Fragment中声明一个接口,并在Activity中实现该接口。接着,在Fragment中通过类型转换检查Activity是否实现了该接口,如果实现了则调用相应的方法。这种方法不仅提高了代码的解耦性,还增强了模块间的通信效率。此外,还可以通过ViewModel或LiveData等现代Android架构组件进一步优化这一过程,以实现更加高效和可靠的通信机制。 ...
[详细]
蜡笔小新 2024-11-01 16:08:16
-
在OpenCV 2中,`Mat`类作为核心组件,对于图像处理至关重要。本文将深入探讨`Mat`对象的类型、深度与步长属性,这些属性是理解和优化图像操作的基础。通过具体示例,我们将展示如何利用这些属性实现高效的图像缩小功能。此外,还将讨论这些属性在实际应用中的重要性和常见误区,帮助读者更好地掌握`Mat`类的使用方法。 ...
[详细]
蜡笔小新 2024-11-01 15:39:04
-
通过优化模板消息机制,本研究提出了一种高效的信息化推送方案。该方案利用获取的访问令牌(access token)和指定的模板ID,实现了精准且快速的信息推送,显著提升了用户体验和信息传递效率。具体实现中,通过调用相关API接口,确保了消息的准确性和及时性,为用户提供更加便捷的服务。 ...
[详细]
蜡笔小新 2024-11-01 15:24:52
-
蜡笔小新 2024-11-01 15:06:51
-
在ASP.NET MVC项目中,通过实战解决了Ajax请求500错误及多表数据查询的问题。具体而言,将页面分为两个部分,用户点击右侧导航栏时,通过Ajax请求动态加载数据,并在右侧显示相应的页面内容。最初尝试使用Partial Action方法,但遇到了500错误。通过详细排查和调试,最终成功解决了这一问题,并实现了预期功能。此外,还优化了多表数据查询的性能,确保系统的高效运行。 ...
[详细]
蜡笔小新 2024-11-01 14:23:52
-
尽管许多人认为跑步是一项简单的运动,但实际上它涉及诸多专业知识。不正确的跑步方式不仅会降低锻炼效果,还可能引发伤害。例如,穿着不合脚或过于陈旧的跑鞋,会导致足部支撑不足,增加受伤风险。此外,跑步姿势不当、热身不足、过度训练等问题也同样值得关注。本文将详细介绍七大常见跑步误区,并提供专业的改进建议,帮助跑者避免这些问题,提高运动效率和安全性。 ...
[详细]
蜡笔小新 2024-11-01 14:01:24
-
在第六章中,我们将深入探讨MySQL中的多表查询技术,包括联结查询和子查询。联结查询通过将两个或多个表进行连接,基于连接条件生成结果集。常见的联结类型有内联结、外联结和全外联结。交叉联结(CROSS JOIN)虽然使用较少,但其原理是生成所有可能的组合,类似于笛卡尔积的概念。此外,子查询则是在一个查询语句中嵌套另一个查询,用于获取更复杂的数据集。本章将通过实例详细讲解这些查询方法的应用和优化技巧。 ...
[详细]
蜡笔小新 2024-11-01 13:38:07
-
本文深入探讨了 iOS 开发中 `int`、`NSInteger`、`NSUInteger` 和 `NSNumber` 的应用与区别。首先,我们将详细介绍 `NSNumber` 类型,该类用于封装基本数据类型,如整数、浮点数等,使其能够在 Objective-C 的集合类中使用。通过分析这些类型的特性和应用场景,帮助开发者更好地理解和选择合适的数据类型,提高代码的健壮性和可维护性。苹果官方文档提供了更多详细信息,可供进一步参考。 ...
[详细]
蜡笔小新 2024-11-01 12:41:00
-
在 HihoCoder 1505 中,题目要求从给定的 n 个数中选取两对数,使这两对数的和相等。如果直接对所有可能的组合进行遍历,时间复杂度将达到 O(n^4),因此需要考虑优化选择过程。通过使用哈希表或其他高效的数据结构,可以显著降低时间复杂度,从而提高算法的效率。具体实现中,可以通过预处理和存储中间结果来减少重复计算,进一步提升性能。 ...
[详细]
蜡笔小新 2024-11-01 11:07:48
-
在探讨如何高效处理大规模数据报表的分页展示之前,首先需要明确导致报表加载缓慢的主要原因。通常情况下,这主要是由于两个方面:一是查询条件过于宽泛,使得数据库返回的结果集包含数百万甚至更多的记录;二是前端渲染性能不足,无法高效处理大量数据。为了优化这一过程,可以从以下几个方面入手:优化查询条件,减少不必要的数据返回;采用分页查询技术,每次仅加载所需的数据;利用缓存机制,减少对数据库的频繁访问;提升前端渲染效率,使用虚拟滚动等技术提高用户体验。 ...
[详细]
蜡笔小新 2024-11-01 11:03:18
-
在CSS中处理单行文本长度限制的问题时,可以通过设置文本颜色、定义块级元素等方法来实现。具体而言,通过使用 `color: #000;` 来控制文字颜色,并将元素定义为块级元素(`display: block;`),可以有效管理文本的显示效果。此外,还可以结合其他CSS属性,如 `overflow: hidden;` 和 `text-overflow: ellipsis;`,以确保超出部分的文字被优雅地隐藏或截断,从而提升用户体验。 ...
[详细]
蜡笔小新 2024-11-01 10:18:12
-