javascript XMLHttpRequest 使用笔记

记录几个最近了解的 web开发的总结


1.

网页里在包含 js 时,要写成

<script type = "text/javascript" src="index.js"></script>

不要简写成 <script type = "text/javascript" src="index.js"/> ,写成这样浏览器虽然不会报错,但至少在chrome 上会无法执行 js 里面的 函数.

2.

js 构建 ajax 请求的基础写法,我从网上抄的, 记录在此:

function ajaxObject()
{
	var xmlHttp;
	try{
		xmlHttp = new XMLHttpRequest();
	}
	catch(e)
	{
		try
		{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP")
		}
		catch(e)
		{
			try
			{
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch(e)
			{	
				alert("Browser not support Ajax!")
				return false
			}

		}

	}
	return xmlHttp;
}

function ajaxPos(url,data,fnSucceed,fnFail,fnLoading)
{
	var ajax = ajaxObject();
	ajax.open("post",url,true)
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 4)
		{
			if(ajax.status == 200)
			{
				fnSucceed(ajax.responseText)
			}
			else
			{
				fnFail("Http request error!Error code:" + ajax.status)
			}
		}
		else
		{
			fnLoading();
		}
	}
	ajax.send(data)

}


3.

XMLHttpRequest 形式的 ajax请求 无法做到 跨域,即 ajax 的 目标对象必须和自己在同一个域名下。

如果请求的地址跨域了,则会 收到  state == 0 的错误码.


4.

我是个web开发纯新手,最近一直有这样的想法,不知道想的对不对。

工作上,一直在做 cocos2dx 的卡牌游戏,前后端区别分明,后端只负责返回数据,前端用负责显示。我现在想写个简单的个人网站,也希望能够做到明确的前后端开发分离的效果。但是在看了一些 html css js php的资料后,我发现 很多我看到的资料上,前端 页面都是 由后端 负责生成的。比如一个 .php 文件, 里面有 html 标签,有 <?php?>标签,这样动态生成一个页面。这样一来,归根结底还是后端生成 ,没有彻底做到前后端彻底分离。

于是我打算这样做:前端用 javascript 来生成网站的动态部分,动态部分的数据,用 javascript 的 ajax 向后端发请求获得。这样一来前后端完全分离,做法就很像游戏开发的方式了。去年做了不长时间的 egret 游戏,做法基本上就是这样的。只是前端显示上,完全体现在  html 的 canvas 标签里。而做网页的话,需要体现在 DOM 上。

JS 前端应该有一些列的 ui 库,以我现在的理解 jquery, react, bootstrap,extjs 应该就是专门做 用 JS 写 ui 件事的( 不知道我的理解对不对).但是由于我在学习 html css js ,所以暂时不打算用 任何 ui 框架,而是自己从头开始构建界面的每一部分。

js 构建 html DOM 的话, 一些页面的公用部分,可以封装成  js 代码,这样理论上就能较好的解决 html 页面重复部分 要写好几遍的问题。

最终网页的效果可能很丑陋,但至少先做一个试试吧。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值