無標題文檔

跨域 Ajax 调用总结

上次提到过跨域 Ajax 的调用问题 ,这次做个总结。众所周知,Javascript 有「同源策略」的限制。但有时候偏偏又要碰到 Ajax 跨域调用的问题,这个时候就需要些「特殊」的方法使脚本正常使用。

总结下目前所能想到的一些策略,具体的可以查看 Yahoo 开发中心的 相关文档

使用 iframe

具体详情,可以 参看这里

实现的原理就是 iframe 与 父页面 进行 Javascript 通信。完全跨域操作没有测试过,但跨子域名是完全可行的。

优势(部分)

  • 全部使用 Javascript 搞定
  • 简单,不用学习其他语言

缺点(部分)

  • 破坏 HTML 结构
  • 客户端的资源占用比较大

服务器端脚本

https://friable.rocks/_/2008_04_07/1207562864.gif

架构可以先「盗用」 Yahoo 文中 的那张插图。大家也许想到变通的办法了,就是在服务器端编写类似网关的脚本。

比如获取另外个域下的 Json 输出,用 PHP 编写的部分代码如下

header('Content-type: text/javascript');
$url = 'http://x.other.net/json';
if ($content  = file_get_contents($url)) {
    echo $url;
}

很简单的代码,但对于服务器端而言,没有任何的限制。进一步的扩展,可以使用 CURL 库

优势(部分)

  • 使用没有任何限制
  • 对 Javascript 透明

缺点(部分)

  • 必须支持服务器端
  • Javascript 程序员必须了解服务器端语言
  • 服务器端脚本必须与页面在同个域内
  • 可能会加重服务器负载

由于相对比较熟悉 PHP 语言,加上后者对于客户端友好,所以在条件允许的情况下,个人还是比较偏向后者。

清·明

清明 - 杜牧

清明时节雨纷纷,路上行人欲断魂。
借问酒家何处有,牧童遥指杏花村。

每年的清明天气都是不好,心情也尤其显得郁闷。对于国家清明放假的决策,还是表示支持的 -- 加上周末,我还可以多休息几天。

早上还在喧闹的杭州,下午两三点就到了乡下的乡下。空气中弥漫着小雨,这里的空气尤其显得清新。

https://friable.rocks/_/2009_11_05/5942955c14c3.jpg

这是个浙东的渔村,离海就两三公里。祖辈世世代代都在这里生存,所以归尘以后也就安葬在同个地方。从山上俯瞰,可以看见整个小镇的全貌。

https://friable.rocks/_/2009_11_05/0116755c14b6.jpg

往东望去,不远就是东海。清晨在这里看日出,是件非常惬意的事情。朝阳倒映着海平面,就犹如将地平线镶上了层金边。

https://friable.rocks/_/2009_11_05/0802055c14c9.jpg

由于这座山的战略位置非常重要,所以海军就在这里驻扎。母亲曾经说,「千万可不能打仗啊,否则老祖宗的地盘就得不到安宁了」。

https://friable.rocks/_/2009_11_05/6431955c149d.jpg

再说说这个村子,正如大家所预想到的,这个村子的特产就是海鲜。逛了下超市,发现这里海鲜的价格,竟然连杭州的一半都不到。

照片里的是种叫做 泥螺 的软体生物,味道非常的鲜美,但并不是所有人,都喜欢这种粘粘的类似于 鼻涕虫 一样的食物。

别忘记 CSS Naked Day

http://naked.dustindiaz.com/img/naked-day-08.png

今年的 CSS Naked Day 似乎很多人都忘记了。而 去年的这个「节日」 甚至 淘宝网 都参加了。下面是其官方的一些介绍

The idea behind this event is to promote Web Standards. 
Plain and simple. This includes proper use of (x)html, 
semantic markup, a good hierarchy structure, and of 
course, a good 'ol play on words. It's time to show off
your <body>.

创办这个「活动」并不是为了好玩,而是提倡 Web 开发人员使用具有良好结构的 HTML 。当然,完全抛弃 CSS 呈现页面的默认样式,是需要「勇气」的。

本人认为,如果条件允许的话,建议有兴趣的都可以参加。例如本人的 Blog 「脱掉」 CSS 样式 以后,会是这个样子(看起来非常丑)。

https://friable.rocks/_/2009_11_05/638435599e43.jpg

作为对比,再贴张「正常」的

https://friable.rocks/_/2009_11_05/099235571cb4.jpg

如果不想浪费时间写相应的代码,可以使用官方提供的 PHP 函数(当然,也可以使用 Javascript 实现)。

= $start && $now <= $end ) {
        return true;
    }
    return false;
}
?>

我的照片

嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHubTwitterInstagram 等。

这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 要知道作为码农取名是件很难的事情,所以不想在取名这事情上太费心思。

作为八零后,自认为还仅存点点可能不怎么被理解的幽默感,以及对平淡生活的追求和向往。 为了避免不必要的麻烦,声明本站所输出的内容以及观点仅代表个人,不代表自己所服务公司或组织的任何立场。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQG91dGxvb2suY29tCg== | base64 -d`

分类

搜索

文章