当前位置:  编程技术>WEB前端
本页文章导读:
    ▪跨域取数据的方法      跨域请求的方式有很多种,1,iframe2,document.domain3,window.name4,script5,XDomainRequest (IE8+)6,XMLHTTPRequest (Firefox3.5+)7,postMessage (HTML5)8,后台代理...1.jsonp其实 jsonp 是个很简单的一个东西。主要是.........
    ▪Web开发小技巧      1、英文字母自动换行: 本文链接......
    ▪Js和css文件动态合并------用Node.js开发的一个前端优化小程序      MergeJSAndCssgit地址:https://github.com/wyzwhp/MergeJSAndCss/网站前端优化,主要功能是动态的合并js和css 基本原理是把多个js文件(或者css文件)合并成一个文件,网页访问的时侯减少js和css文件的请求,.........

[1]跨域取数据的方法
    来源:    发布时间: 2013-11-06

跨域请求的方式有很多种,
1,iframe
2,document.domain
3,window.name
4,script
5,XDomainRequest (IE8+)
6,XMLHTTPRequest (Firefox3.5+)
7,postMessage (HTML5)
8,后台代理
...

1.jsonp
其实 jsonp 是个很简单的一个东西。
主要是利用了 <script/> 标签对 javascript 文档的动态解析来实现。(其实也可以用eval函数)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Test Jsonp</title>
<script type="text/javascript">
function jsonpCallback(result)
{
alert(result.msg);
}
</script>
<script type="text/javascript" src="http://uefirst.com/jsonServerResponse?jsonp=jsonpCallback"></script>
</head>
<body>
</body>
</html>

其中 jsonCallback 是客户端注册的,获取跨域服务器上的json数据后,回调的函数。 uefirst.com/jsonServerResponse?jsonp=jsonpCallback 这个 url 是跨域服务器取 json 数据的接口,参数为回调函数的名字,返回的格式为

jsonpCallback({msg:'this is json data'})

Jsonp原理:
首先在客户端注册一个callback, 然后把callback的名字传给服务器。

此时,服务器先生成 json 数据。
然后以 javascript 语法的方式,生成一个function , function 名字就是传递上来的参数 jsonp.
最后将 json 数据直接以入参的方式,放置到 function 中,这样就生成了一段 js 语法的文档,返回给客户端。
客户端浏览器,解析script标签,并执行返回的 javascript 文档,此时数据作为参数,传入到了客户端预先定义好的 callback 函数里.(动态执行回调函数)

2.动态加载js
动态加载js数据
例如数据服务器有个页面a.com/1.php输出数据如下:

var hqs2={
Summary:{pages:1,page:1,total:1,hqtime:"20110422150108"},
Column:{id:0,code:1,name:2,lcp:3,np:4,hlp:5,pl:6,scnt:7,ta:8,tm:9},
HqData:[
["1208","1208","黑龙江省",12.48,12.42,-0.06,-0.47,33,2182408,224596.97]
]
};

调取页面b.com/1.html

function GetJsData(src,callback){
var head=document.getElementsByTagName("head")[0];
var js=document.createElement("script");
js.setAttribute("src",src);
js.onload=js.onreadystatechange=function(){
if(!this.readyState||this.readyState=="loaded"||this.readyState=="complete"){
head.removeChild(js);
if(callback) callback();
}
}
head.appendChild(js);
}
GetJsData('http://a.com/1.php',function(){
//加载完成...
if(hqs2){
var total = hqs2.Summary.total;
alert(hqs2.HqData[0][hqs2.Column.name]);
}
});
//返回:黑龙江省

3.通过服务器中转

如asp.net服务端1.aspx

public static string getContent(string url)
{
string strContent = "";
WebResponse response = null;
Stream stream = null;
StreamReader reader = null;
HttpWebRequest requestiid = null;
try
{
requestiid = (HttpWebRequest)WebRequest.Create(url);
requestiid.Timeout = 30000;
response = requestiid.GetResponse();
stream = response.GetResponseStream();
reader = new StreamReader(stream, System.Text.Encoding.Default);
strContent = reader.ReadToEnd().ToString();
}
catch (Exception ex)
{
//return null;
}
finally
{
if (reader != null) reader.Close();
if (stream != null) stream.Close();
if (response != null) response.Close();
if (requestiid != null) requestiid.Abort();
}
return strContent;
}
Response.Write("http://a.com/1.js");

这样就可以用普通ajax方式读取1.aspx了

本文链接


    
[2]Web开发小技巧
    来源:    发布时间: 2013-11-06

1、英文字母自动换行:

 

本文链接


    
[3]Js和css文件动态合并------用Node.js开发的一个前端优化小程序
    来源:    发布时间: 2013-11-06

MergeJSAndCss

git地址:https://github.com/wyzwhp/MergeJSAndCss/

网站前端优化,主要功能是动态的合并js和css 基本原理是把多个js文件(或者css文件)合并成一个文件,网页访问的时侯减少js和css文件的请求,同时把文件内容进行必要的压缩。

测试地址: js合并 http://localhost:3000/js?file=http://x.libdd.com/farm1/a05baa/fde6509f/jquery.mousewheel-3.0.6.pack.js,http://x.libdd.com/farm1/08871e/95134743/jquery.fancybox-buttons.js&type=&host= css合并 http://localhost:3000/css?file=http://common.cnblogs.com/Skins/LessIsMore/style.css?id=20121228,http://news.sina.com.cn/css/stencil_v2/public_101122.css|gbk&type=&host=

参数说明: file 是需要合并的文件路径地址,多个文件之间用“,”分割,另外有可能出现文件乱码的问题,对于非utf-8编码的页面可以增加编码字符串,例子:http://news.sina.com.cn/css/stencil_v2/public_101122.css|gbk type type有两个值debug和release,debug只是单纯的文件合并,release是是否压缩另存到服务器上 host host对于没有指定域名的文件起作用,多数情况可以不用,除非在QueryString字符串超长的时候可以用它来减少一下长度

另外该程序在cache方面还有优化的余地,现在是读取的硬盘文件不是读取cache,以后再优化,也欢迎大家多提宝贵意见,谢谢。

备注:在代码运行的时候需要增加个ts的文件夹,否则在release的就报错了。

本文链接


    
最新技术文章:
▪css white-space:nowrap属性用法(可以强制文字不...
▪IE里button设置border:none属性无效解决方法
▪border:none与border:0使用区别
▪html清除浮动的6种方法示例
▪三个不常见的 HTML5 实用新特性简介
▪css代码优化的12个技巧
▪低版本IE正常运行HTML5+CSS3网站的3种解决方案
▪CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chr...
▪ie6,ie7,ie8完美支持position:fixed的终极解决方案
▪小技巧处理div内容溢出
▪html小技巧之td,div标签里内容不换行
▪纯CSS实现鼠标放上去改变文字内容
▪li中插入img图片间有空隙的解决方案
▪CSS3中Transition属性详解以及示例分享
▪父div高度不能自适应子div高度的解决方案
▪告别AJAX实现无刷新提交表单
▪从零学CSS系列之文本属性
▪HTML 标签
▪CSS3+Js实现响应式导航条
▪CSS3实例分享之多重背景的实现(Multiple background...
▪用css截取字符的几种方法详解(css排版隐藏溢...
▪页面遮罩层,并且阻止页面body滚动。bootstrap...
▪CSS可以做的几个令你叹为观止的实例分享
▪详细分析css float 属性以及position:absolute 的区...
▪IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解...
▪CSS小例子(只显示下划线的文本框,像文字一...
▪可以给img元素设置背景图
▪不通过JavaScript实现的自动滚动视差效果
▪div+CSS 兼容小摘
▪CSS的inherit与auto使用分析
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3