sample.html

这篇博客详细介绍了HTML的使用注意事项、CSS界面设计以及表单操作,特别是Jquery如何判断表单是否修改。同时,文章深入探讨了POST提交数据的四种常见方式:application/x-www-form-urlencoded、multipart/form-data、application/json和text/xml,包括每种方式的使用场景和示例。此外,还提供了相关的参考资料,如谷歌浏览器调试技巧和JSON数据处理方法。
摘要由CSDN通过智能技术生成

目录

一、Html使用注意... 1

二、界面设计 (css)... 9

三、表单使用... 15

Jquery判断表单是否修改... 15

表单序列化为json对象... 16

json对象转为json字符串... 16

json对象赋值到表单,需要表单中控件的name值与json对象的key值匹配。... 16

四、四种常见的 POST 提交数据方式(application/x-www-form-urlencoded,multipart/form-data,application/json,text/xml)... 17

application/x-www-form-urlencoded. 17

multipart/form-data. 17

application/json. 18

text/xml. 18

五、参考... 19

谷歌浏览器调试技巧... 19

Jquery判断表单是否修改... 19

谷歌开发者工具调试CSS样式_谷歌应用... 19

CSS 实例... 19

添加JSON Data到已经存在的JSON文件中... 19

json-c 的安装和使用(使用json-c读取文件中的json数据和保存json格式的数据至文件中)     20

C语言构建WEB管理系统(四):CGI程序解析POST数据... 24

嵌入式LINUX下CGI与HTML网页之间的通信... 27

[精华]编写CGI的C语言代码(文件名是getdata.c)设置一个Cookie,打印一个HTML,跳转到showCookie.html页面。... 29

 

 

一、Html使用注意

<!DOCTYPE html>
<!--
HTML页面加载和解析流程

1. 用户输入网址(假设是个html页面,并且是第一次访问),浏览器向服务器发出请求,服务器返回html文件。

2. 浏览器开始载入html代码,发现<head>标签内有一个<link>标签引用外部CSS文件。

3. 浏览器又发出CSS文件的请求,服务器返回这个CSS文件。

4. 浏览器继续载入html中<body>部分的代码,并且CSS文件已经拿到手了,可以开始渲染页面了。

5. 浏览器在代码中发现一个<img>标签引用了一张图片,向服务器发出请求。此时浏览器不会等到图片下载完,而是继续渲染后面的代码。

6. 服务器返回图片文件,由于图片占用了一定面积,影响了后面段落的排布,因此浏览器需要回过头来重新渲染这部分代码。

7. 浏览器发现了一个包含一行Javascript代码的<script>标签,赶快运行它。

8. Javascript脚本执行了这条语句,它命令浏览器隐藏掉代码中的某个<style>(style.display=”none”)。杯具啊,突然就少了这么一个元素,浏览器不得不重新渲染这部分代码。

9. 终于等到了</html>的到来,浏览器泪流满面

10. 等等,还没完,用户点了一下界面中的“换肤”按钮,Javascript让浏览器换了一下<link>标签的CSS路径。

11. 浏览器召集了在座的各位<div><span><ul><li>们,“大伙儿收拾收拾行李,咱得重新来过……”,浏览器向服务器请求了新的CSS文件,重新渲染页面。
-->

<html>
<!-- 保持页面简洁、减少资源的使用时最直接的,去除不必要加载项; 删除不必要的空格、注释。减少文件数量;减少页面上引用的文件数量可以减少HTTP连接数。优化页面元素加载顺序;首先加载页面最初显示的内容和与之相关的JavaScript和CSS,然后加载HTML相关的东西,像什么不是最初显示相关的图片、flash、视频等很肥的资源就最后加载。几种优化web页面加载速度的策略 -->
<head> 

<!-- 合理设置HTTP缓存----很少变化的直接通过HTTP Header中的Expires设置 个很长的过期头。变化不频繁而又可能会变的资源可以使用Last-Modifed来做请求验证;
开启服务器的gzip gzip可以减少不少传输资源的体积;对重复使用的数据进行缓存  -->
<meta charset="utf-8"> 
<!--
<link rel="stylesheet" href="./font-awesome.min.css">
-->
<link rel="stylesheet" href="./style.css">
<style>
<!--将inline的script和css移到外部文件。使用外部的JavaScript和CSS,可缓存; 将CSS放在HEAD中,实际上浏览器对选择符的解析是从右往左进行的,简化;资源合并与压缩(合并脚本和样式) 合并CSS图片 使用在CSS中的图片;
样式表在下载完成后,将和以前下载的所有样式表一起进行解析,解析完成后,将对此前所有元素(含以前已经渲染的)重新进行渲染。JS、CSS中如有重定义,后定义函数将覆盖前定义函数。使用现代CSS来减少标签和图像,例如使用现代CSS+文字完全可以替代一些只有文字的图片。 -->
*{
    margin: 0;
    padding: 0;
}
.box{
    width: 80%;
    margin: 200px auto;
}
.box .title{

}
.box .title ul{
    display: flex;
}
.box .title ul li{
    list-style: none;
    border:1px solid #666;
    border-bottom: none;
    padding: 5px;
    margin-right: 10px;
}
.box .title ul li.current{
    border-bottom: 1px solid #fff;
    position: relative;
    top: 1px;
}
.box .content{
    border:1px solid #666;
    padding: 5px;
    min-height: 600px;
    
}
.box .content>div{
    display: none;
}
.box .content>div:first-child{
    display: block;
}


ul li{list-style:none;}	<!--取消默认的圆点和序号 -->
.content{
    border:1px solid #666;
    padding: 5px;
    min-height: 600px;
    
}

</style>


 <script type="text/javascript" language="javascript">   
 <!-- 最初只加载核心模块,其他模块可以等到需要使用的时候才加载  将外部脚本置底(将脚本尽可能的往后挪,减少对并发下载的影响)异步执行inline脚本   使用setTimeout控制加载的时机,HTML5中引入了Web Workers的机制,        异步请求Callback-----可以考虑在DOMLoaded事件触发的时候加载,或者使用setTimeout方式来灵活的控制加载的时机;如果遇到语义解释性的标签嵌入文件(JS脚本,CSS样式),那么此时IE的下载过程会启用单独连接进行下载。减少域名查询,DNS查询和解析域名也是消耗时间的,所以要减少对外部JavaScript、CSS、图片等资源的引用,不同域名的使用越少越好。-->
 </script>

<!-- 使用Google的html5shiv包 推荐-->
<!--[if lt IE9]> 
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<style>article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}</style>
<![endif]-->


<!-- 可以引导用户开启脚本,或者直接跳转到HTML4标签设计的界面-->
<!--[if lte IE 8]> 
<noscript>
     <style>.html5-wrappers{display:none!important;}</style>
     <div class="ie-noscript-warning">您的浏览器禁用了脚本,请<a href="">查看这里</a>来启用脚本!或者<a href="/?noscript=1">继续访问</a>.
     </div>
</noscript>
<![endif]-->

<title>(wangdaopo.com)</title> 
</head>


 <!-- 避免重复的资源请求----由于疏忽或页面由多个模块拼接而成,然后每个模块中请求了同样的资源时;减少重构重绘; 减少DOM元素的数量;尽量减少DOM访问;--不要使用嵌套table,而使用非嵌套table或者div。将基于大块嵌套的table的layout分解成多个小table,这样就不需要等到整个页面(或大table)内容全部加载完才显示。如果浏览器可以立即决定图像或table的大小,那么它就可以马上显示页面而不要重新做一些布局安排的工作。这不仅加快了页面的显示,也预防了页面完成加载后布局的一些不当的改变。-->
<body>
 
 <!-- 在页面刚加载的时候可以只加载第一屏-->
<!--  当你在网页上添加图片或表格时,你应该指定它们的高度和宽度,也就是height和width参数-->
<div class="box"  style="width:1200px;">

<div id="top-container">

<div id="topBanner"> 
<div class="layoutRow"> <div class="left-pad"> <div class="gwt-HTML">VOIP</div> </div> <div class="right-pad"> <div class="feature"><a class="feature first" name="logout" id="gwt-uid-413">Admin Logout</a><a class="feature" name="support" aria-hidden="true" id="gwt-uid-414" style="display: none;">Support</a><a class="feature" name="reboot" id="gwt-uid-415">Reboot</a><a class="feature last" name="prov" aria-hidden="true" id="gwt-uid-416" style="display: none;">[[MISSING: PROV_NOW]]</a>

</div> <select class="gwt-ListBox"><option value="en">English</option><option value="zh">简体中文</option><option value="zh-tw">正體中文</option><option value="ar">العربية</option><option value="cs">Czech</option><option value="de">Deutsch</option><option value="es">Español</option><option value="fr">Français</option><option value="he">עברית</option><option value="it">Italiano</option><option value="ja">日本語</option><option value="ko">한국어</option><option value="nl">Nederlands</option><option value="pl">Polski</option><option value="pt">Português</option><option value="ru">Русский</option><option value="sk">Slovenčina</option><option value="sr">Srpski</option><option value="tr">Türkçe</option></select> </div></div> 
</div> 
 
  <!--
 <div id="midBanner"> <div class="layoutRow"> <div id="logo-pad"></div> <div class="pad-Menu"><div><div tabindex="0" role="menubar" class="gwt-MenuBar gwt-MenuBar-horizontal" hidefocus="true" aria-activedescendant="gwt-uid-53" style="outline: 0px;"><input type="text" tabindex="-1" role="presentation" style="opacity: 0; height: 1px; width: 1px; z-index: -1; overflow: hidden; position: absolute;">

  
 <table><tbody><tr><td class="gwt-MenuItem" id="gwt-uid-53" role="menuitem" aria-haspopup="true">Status</td><td class="gwt-MenuItem" id="gwt-uid-90" role="menuitem" aria-haspopup="true">Profiles</td><td class="gwt-MenuItem" id="gwt-uid-100" role="menuitem" aria-haspopup="true">DECT</td><td class="gwt-MenuItem" id="gwt-uid-106" role="menuitem" aria-haspopup="true">Settings</td><td class="gwt-MenuItem" id="gwt-uid-123" role="menuitem" aria-haspopup="true">Maintenance</td><td class="gwt-MenuItem" id="gwt-uid-127" role="menuitem" aria-haspopup="true">Phonebook</td></tr></tbody></table>
  
 </div></div></div> </div> </div>
  -->
 </div>
	 
 <div class="title">
	<ul>
		<li class="current" index="0">Status</li>
		<li index="1">Profiles</li>
		<li index="2">DECT</li>
		<li index="3">Settings</li>
		<li index="4">Maintenance</li>
		<li index="5">Phonebook</li>
	</ul>
</div>
	 

	<div class="content">
		<div>  <!-- 切换1-->
		
		
			<div id="header" style="background-color:#FFA500;">
			<h1 style="margin-bottom:0;">Status</h1>
			</div>
				<!--  当你在网页上添加图片或表格时,你应该指定它们的高度和宽度,也就是height和width参数-->

			<div id="content" style="background-color:#EEEEEE;float:left;">
			内容在这里

			</div>
			
			
		</div>
		<div>  <!-- 切换2-->
			  <div id="header" style="background-color:#FFA500;">
			     <h1 style="margin-bottom:0;">Profiles</h1>
		    </div>
	
		</div>
		<div>  <!-- 切换3-->
		     <div id="header" style="background-color:#FFA500;">
			     <h1 style="margin-bottom:0;">DECT</h1>
		    </div>
		   <!--  当你在网页上添加图片或表格时,你应该指定它们的高度和宽度,也就是height和width参数-->
			<div id="menu" style="background-color:#FFD700;float:left;">
				<ul>
					<li class="current" index="0">菜单</li> <!-- 子切换1-->
					<li index="1">HTML</li> <!-- 子切换2-->
					<li index="2">CSS</li>  <!-- 子切换3-->
					<li index="3">JavaScript</li> <!-- 子切换4-->
				</ul>
			</div>
			 
			 
			<div class="content">
				<div> <!-- 子切换1-->
				  1111111
				</div>
				<div>  <!-- 子切换2-->
				2222222
				</div>
				<div> <!-- 子切换3-->
				3333333
				</div>
				<div>   <!-- 子切换4-->
				444444
				</div>
			</div>
			
		</div>
		<div>   <!-- 切换4-->
			<div id="header" style="background-color:#FFA500;">
			<h1 style="margin-bottom:0;">Settings</h1>
			</div>
		</div>
		
		<div>   <!-- 切换5-->
			<div id="header" style="background-color:#FFA500;">
			<h1 style="margin-bottom:0;">Maintenance</h1>
			</div>
		</div>
		
		<div>   <!-- 切换6-->
			<div id="header" style="background-color:#FFA500;">
			<h1 style="margin-bottom:0;">Phonebook</h1>
			</div>
		</div>
		
		
	</div>



 <div id="footer"> <div class="layoutRow"> <div id="footerSupport" style="float: left;"> <a class="gwt-Anchor" href="" target="_blank">Voip Networks Support</a> </div> <div id="footerCopyright" style="float: right;"> <div class="gwt-HTML">Copyright ©  2021. All Rights Reserved.</div> </div> </div> </div>


 
</div>


<script src="./jquery-3.5.1.min.js"></script>



<script>
function loadPageDiv2LoacalGageDiv(url, loadPageDivSelector, localPageDivSelector)
{
	//url:这里是另一个静态页的地址,loadPageDivSelector:另一个html页面的指定的一部分,localPageDivSelector:本页面div
	$.ajax( {
			url: url, //这里是另一个静态页的地址
			type: "GET", //静态页用get方法,否则服务器会抛出405错误
			success: function(data){
				var result = $(data).find(loadPageDivSelector); //loadPageDivSelector:另一个html页面的指定的一部分
				$(localPageDivSelector).html(result); //localPageDivSelector:本页面div
			}
	});
} 
 <!-- 将外部脚本置底(将脚本尽可能的往后挪,减少对并发下载的影响)js数量比较多合并js到几个大的js库内减少http请求;.如果js数量实在太多需要按需加载 JavaScript 文件,延迟加载和执行非必要脚本;异步执行inline脚本   使用setTimeout控制加载的时机,HTML5中引入了Web Workers的机制,输入的有效性验证,DOM行为----尽量将它转为数组后再访问, 保存到局部变量后再使用局部变量,避免使用eval和Function,局部变量缓存全局变量, 减少闭包的使用,访问超过一次,建议将数据放入局部变量,拼接的字符串较多时将其放在数组中最后调用其join方法得到结果,当页面中元素被移除或替换时,若元素绑定的事件仍没被移除,在IE中不会作出恰当处理,此时要先手工移除事件,不然会存在内存泄露。记得所有值类型做.运算之前先显式转换一下;在销毁对象的时候,要遍历属性中属性,依次删除;作用域中没用的属性可以删除,事件处理函数定义在外部,解除闭包;闭包中,作用域中没用的属性可以删除,以减少内存消耗。删除对dom的引用 obj=null;统计代码放在页尾(或者使用延迟加载);尽量减少DOM访问 缓存已访问过的元素的索引 先“离线”更新节点,再把它们添到DOM树上 避免用JavaScript修复布局问题  -->
 
 
 
 <!-- 菜单栏切换-->
var title_list = $(".box>.title>ul>li");
var content_list = $(".box>.content>div");
for(var i = 0; i < title_list.length; i++){
    //给每个title添加索引
    title_list[i].setAttribute("index",i);
    //给每个title添加点击事件
    title_list[i].onclick=function(){
        //便利所有的title,置空
        for(var i = 0; i < title_list.length; i++){
            title_list[i].className="";
        }
        //切换当前title的样式
        this.className = "current";
        //获取当前title的索引
        var current_index = this.getAttribute("index");
        //遍历显示对应的当前的title的content
        for(var j = 0; j < content_list.length; j++){
            if(current_index == j){
                content_list[j].style.display = "block";
            }
            else
            content_list[j].style.display = "none";
        }
    }
}



 <!-- 左边列表菜单子切换-->
var child_page_title_list = $(".box>.content>div>#menu>ul>li");
var child_page_content_list = $(".box>.content>div>.content>div");
for(var i = 0; i < child_page_title_list.length; i++){
    //给每个title添加索引
    child_page_title_list[i].setAttribute("index",i);
    //给每个title添加点击事件
    child_page_title_list[i].onclick=function(){
        //便利所有的title,置空
        for(var i = 0; i < child_page_title_list.length; i++){
            child_page_title_list[i].className="";
        }
        //切换当前title的样式
        this.className = "current";
        //获取当前title的索引
        var current_index = this.getAttribute("index");
        //遍历显示对应的当前的title的content
        for(var j = 0; j < child_page_content_list.length; j++){
            if(current_index == j){
                child_page_content_list[j].style.display = "block";
				loadPageDiv2LoacalGageDiv("./sample_ori.html","#content",content_list[j]);
            }
            else
            child_page_content_list[j].style.display = "none";
        }
    }
}


 </script>
 

</body>
</html>

 

二、界面设计css

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>callManager</title>
<style>
*{
	padding: 0px;
	margin: 0px;
}
body {
  font-family: Arial;
  padding: 10px;
  background: #f1f1f1;
}
 


    header{
	
		/* background-color: #ff9900;*/

        width: 80%;
        height: 100px;
        margin-bottom: 5px;
		margin: auto;
        position: relative;

    }


	
    nav{
	
		/* left:160px;
           background-color: yellowgr
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码是一个方法 `open` 的实现。具体解释如下: ```javascript open: function(demoName) { var sample = samples[demoName]; if (lastDemo != demoName) { if (lastDemo && samples[lastDemo].flipbook) { samples[lastDemo].flipbook.turn('destroy').remove(); samples[lastDemo].flipbook = null; } lastDemo = demoName; } if (sample.loading == status.unloaded || sample.loading == status.loading) { $('.shelf .sample[sample="' + demoName + '"]') .addClass('loading') .html('<div class="loader"><i></i></div>'); } if (sample.callback) { if (currentDemo == demoName) return; currentDemo = demoName; sample.callback(); } else { if (sample.loading == status.loading) { setTimeout(function() { bookshelf.open(demoName); }, 100); return; } sample.loading = status.loading; yepnope({ load: [ sample.path + 'css/' + demoName + '.css?' + sid, sample.path + 'js/' + demoName + '.js?' + sid ] }); bookshelf.open(demoName); } }, ``` 具体解释如下: - `var sample = samples[demoName];` 根据传入的 `demoName` 获取对应的示例对象,并将其赋值给变量 `sample`。 - 判断是否需要切换示例: - 如果上一个示例 `lastDemo` 不为空且该示例的翻页组件存在,则销毁并移除该示例的翻页组件。 - 将当前示例 `demoName` 赋值给 `lastDemo`。 - 如果示例的加载状态为未加载或正在加载: - 给对应的示例元素添加 `loading` 类,显示加载中的样式。 - 在示例元素中插入一个加载动画。 - 如果示例有回调函数: - 如果当前示例已经是要打开的示例,则直接返回。 - 将 `currentDemo` 设置为当前示例。 - 执行示例的回调函数。 - 否则: - 如果示例的加载状态为正在加载,稍后再尝试打开示例。 - 将示例的加载状态设置为正在加载。 - 使用 `yepnope` 加载示例的 CSS 文件和 JavaScript 文件。 - 打开示例。 总体而言,这段代码的作用是根据传入的示例名称打开对应的示例。它会根据示例的加载状态、是否需要切换示例和是否有回调函数等条件来执行相应的操作,包括显示加载中的样式、加载示例的资源文件和执行示例的回调函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值