十二月 15, 2009

hoamon's sandbox
hoamon
hoamon's sandbox is about »

tag cloud

» 懂基本原理與不懂基本原理的差別

我在使用 Google AJAX Library api 時,遇到一個奇怪的問題:


//第一段
<script src="http://www.google.com/jsapi"></script>
<script>
google.load("jquery", "1.3.2");
google.load("jqueryui", "1.7.2");
</script>
<script>
var $p = $('<p>123</p>');
alert($p.text()); // it works
</script>

以上程式碼居然不等於下面的程式碼!

//第二段
<script src="http://www.google.com/jsapi"></script>
<script>
google.load("jquery", "1.3.2");
google.load("jqueryui", "1.7.2");
var $p = $('<p>123</p>'); //會發生「未定義 $ 」問題。
alert($p.text());
</script>

但第一段程式碼可換成下面程式碼

//第三段
<script src="http://www.google.com/jsapi"></script>
<script>
google.load("jquery", "1.3.2");
google.load("jqueryui", "1.7.2");
google.setOnLoadCallback(function() {
var $p = $('<p>123</p>');
alert($p.text()); // it works
});
</script>

也就是 js 引擎對 <script> 區塊的判讀有特殊行為存在,要不然就是 jsapi.js 程式有獨到之處,但因為我不懂 js 引擎也沒仔細去看 jsapi.js 程式碼,所以我只能 try and error ,慢慢兜。

三月 4, 2009

hoamon's sandbox
hoamon
hoamon's sandbox is about »

tag cloud

» return HttpResponseRedirect with Post Data?

This is an example to solve the question from Django User Group

In the specification of http status code 302, there are no way to pass a post data to user's browser. But we can use AJAX method to reach this requirement. The principle is using the AJAX request to do some thing must run in the server and return a json data to browser, then the callback function that defined in the html will shape a html form and submit this form.

def readReturnHttpRedirectWithPost(R):
if R.GET.get('var', None):
# do something what you want
return HttpResponse(json.write({'action': 'https://your.web.sitek/', 'vars': {'var1': 'var1', 'var2': 'var2'}}))
html = """
    <html><head><script type="text/javascript" src="/media/jquery.ui-1.5.1/jquery-1.2.6.js"></script></head>
        <body>
          <ul><li><input type="text" id="var"></li>
              <li><input type="submit" id="updateFormWithPost"></li></ul>
          <form id="post_form" method="POST"></form>
          <script>
            $(document).ready(function(){
                $('#updateFormWithPost').click(function(){
                    var value = $('#var').val();
                    $.getJSON('/u/readreturnhttpredirectwithpost/', {'var': value}, function(json){
                        var $post_form = $('#post_form');
                        $post_form.attr('action', json['action']);
                        for (var i in json['vars']){
                            var $input = $('<input type="hidden" name="'+i+'" value="'+json['vars'][i]+'">');
                            $post_form.append($input);
                        }
                        $post_form.submit();
                    });
                });
            });
          </script>
        </body>
    </html>"""
return HttpResponse(html)

七月 15, 2007

hoamon's sandbox
hoamon
hoamon's sandbox is about »

tag cloud

» 4天1200公里的旅行

2007.7.10~13墾丁、長濱、池上行

我們住了三個地方:墾丁星辰民宿、長濱巴歌浪船屋、池上換鵝山房。

旅行中,我想到了一個 idea 。一份旅行日誌中可切為食、住、行及心情四個部份,我們可以分門別類地把餐廳、旅舍、路徑等相關資料變成地點、價格、使用後感受等資訊,然後用 mashup 把它們在包裝起來,應該可以比時下的旅遊網站還好使用。

目前時下的旅遊網站主要分為兩類:討論區及廣告區,一是由使用者自行提出那些地點、路線好玩再相互討論,一是由民宿業者或是觀光產業業者聯合架設以宣傳那邊值得遊玩。

而我的想法是以 Blog + Forum 為內容儲存的底層,並配合 Google Maps 作地點及路線的定義,以 AJAX 技術作 Mashup 的動作,有效分類旅遊資訊。

這次旅行的最大收獲是「曬傷」,我的皮膚不容易黑,所以這次去台東很想給它曬一曬,只是一下子過量了,有點痛、有點癢。

ps 墾丁、池上都有 3G 網路,但長濱沒有。

biggo.com.tw

A Django site.