[2097] Re:JSONPについて
投稿者:(ぱ)こと管理人
2018/01/06 21:26:56
>・P.226 補足 JSONP①
>「JSONPの基本的な原理は ~ <script>タグによるJavaScriptの取得は
>同一オリジンポリシーに縛られない」という記載があります。
>ここの意図は、「”外部ファイルからのJavaScript取得”は同一オリジンポリシーに
>縛られない」で合っていますか?
合っています。外部ファイルからのJavaScript取得には<script>タグを
使うので、そのように書いています。(確かに、HTML中にJavaScriptを
書く時も<script>タグは使いますけれども)
>・P.227 補足 JSONP②
>「このようにして関数呼び出しを含むJavaScriptを取り込めば、その関数
>(上記で言えばcallbackFunc)が呼び出されます。」という部分で、
>具体的にcallbackFuncが実行されるタイミングがよく分かりませんでした。
JavaScriptの実行タイミングについてはp.218に書きましたが、
<script>タグで外部のJavaScriptを読み込んだ場合、その<script>タグのある
位置で実行されます。
JSONPの場合、その外部JavaScriptからcallbackFuncを呼び出すわけですから、
callbackFuncもそのタイミングで実行されます。
そのため、HTML上では、外部JavaScriptを読み込む<script>タグは、
callbackFuncの定義より後ろにある必要があります。
>網掛け部分にある「callbackFunc」には、なぜコールバック関数という
>名前が付いているのでしょうか。webで調べたコールバック関数は
>「他の関数に引数として渡す関数」というイメージなので、ここでこの名前
>(callbackFunc)を使う意図がシックリ来ませんでした。
コールバック関数というのは、その名の通り「呼び返される」関数です。
電話をかけて相手がいないときに「コールバックお願いします」と留守電に
残しておくのと同じように、後で別の人から「呼び返してもらう」関数のことを
コールバック関数と呼びます。その手段のひとつして、関数を、
他の関数に引数として渡しておいて後で呼び返してもらう、という方法もあるわけです。
JSONPの場合、<script>タグで取り込んだ外部スクリプトから「呼び返してもらう」
関数なので、コールバック関数と呼んでいます。