PHPとJavaScriptを足してビルドできる?

このQ&Aのポイント
  • PHPとJavaScriptを足してビルドすることができるのかについて教えてください。
  • jQueryライブラリを修正しようと思ったら、実際に呼び出しているファイルは「jquery.★★.min.js」だけで、ダウンロードしたファイルの中には「build.php」と「build.sh」があります。ビルドした結果が「jquery.★★.min.js」となるのでしょうか?また、PHPでビルドはできるのか、コンパイラが必要なのかについても知りたいです。
  • PHPで「PHP」をビルドしているのか、それとも「JavaScript」をビルドしているのか、それとも両方を足してビルドしているのかについても教えてください。また、「build.php」と「build.sh」で連携してビルドファイルを作成しているのか、ビルドには「.sh」を使える環境が必要なのか、ビルドする目的は容量を圧縮して処理を早くするためなのか、それともビルド前の必要ファイルを読み込めば利用できるのかについても教えてください。
回答を見る
  • ベストアンサー

PHPとJavaScriptを足してビルドできる?

PHPとビルドについて教えてください <質問背景> ・jQueryライブラリを修正しようと思ったら、実際に呼び出しているファイルは「jquery.★★.min.js」だけだった ・ダウンロードしたファイルの中には、「build.php」「build.sh」がある <質問> ・ビルドした結果が、「jquery.★★.min.js」なのでしょうか? ・PHPでビルドって出来るのでしょうか? コンパイラとか不要? ・PHPで「PHP」をビルドしているのでしょうか? それとも、PHPで「JavaScript」をビルドしているのでしょうか? あるいは、PHPで「PHP」と「JavaScript」を足して、ビルドしているのでしょうか? ・「build.php」と「build.sh」で連携して、ビルドファイルを作成しているのでしょうか? ・ビルドするには、「.sh」が使える環境(Linux?)が必要なのでしょうか? ・何のためにビルドするのでしょうか? 容量を圧縮して、処理を早くするため? ・ビルドしなくても、ビルド前の必要ファイルを読み込めば、利用できるのでしょうか?

  • re999
  • お礼率61% (476/777)
  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#177743
noname#177743
回答No.1

JavaScriptライブラリのビルドというのは、一般的なコンパイラ系プログラミング言語のビルドとは全く違います。JavaScriptというのは、スクリプトをテキストとして用意し、それを読み込んで動かします。つまり、ライブラリはテキストファイルでないといけないわけです。C言語みたいにバイナリファイルにコンパイルなんかしたら読めないわけですね。 ではどうやっているのかというと、「余計なものを取り除き、ぎりぎりまで切り詰めて短いテキストにしている」ということです。例えば、変数名hogeなんてのは4文字も使っているからhに変える、とか。改行や半角スペースは無駄なのですべて削除するとか。関数やメソッドも公開されていないものはわかりやすい名前である必要がないので記号のような短い名前に置き換えるとか。そうやってスクリプトが正しく動くぎりぎりまで長さを短くしたものが、jquery.○○.min.jsです。付属のスクリプトは、この変換処理をするためのものです。 同時に、minのつかない、jquery.○○.jsというファイルもjqueryのサイトで配布されています。こちらは、そうした圧縮をする前の状態です。普通のスクリプトですので、中を開けば普通に読めます。修正するならこちらに手を加える形になるでしょう。もちろん、どちらも内容的にはまったく同じものです。ただしファイルサイズはかなり違います。ですので、ファイルサイズの違いをあまり気にしないのであれば、そのまま圧縮せずに使ってもまったく問題はありません。サイズを小さくするのは、単に読み込みを早くするためです。アルゴリズム自体は同じなので、スクリプトの実行速度は、普通に使う分にはほとんど違いがわからないはずです。

re999
質問者

お礼

回答ありがとうございました。 >JavaScriptライブラリのビルドというのは、一般的なコンパイラ系プログラミング言語のビルドとは全く違います >ではどうやっているのかというと、「余計なものを取り除き、ぎりぎりまで切り詰めて短いテキストにしている」ということです 全然知りませんでした。大変参考になりましたー

関連するQ&A

  • JavaScriptの外部ファイル読み込み

    JavaScriptの外部ファイル読み込みについてご教授下さい。 現在、Webサイトを作ろうとPHPとJavaScriptをレンタルサーバーにアップしたのですが、 ローカルではPHPから外部ファイルのJavaScriptを読み込めるのに、 サーバーにアップするとPHPからJavaScriptを読み込めなくなってしまいます。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>TEST</title> <meta charset=utf-8" /> <script type="text/javascript" src="./js/jquery-1.4.2.min.js"></script> ・・・ 上記のようにしてもjquery-1.4.2.min.jsが読み込まれず、jQueryが使えません。 FireBugでスクリプトを確認すると以下のようなエラーが出ていました。 1Failed to load source for: http://xxx.my-sv.net/js/jquery-1.4.2.min.js ちなみに以下のようにJavaScriptファイルを開こうとするとブラウザは真っ白なのですが、 http://xxx.my-sv.net/js/jquery-1.4.2.min.js テキストファイルに変更したものだと中身を見ることができました。 http://xxx.my-sv.net/js/jquery-1.4.2.min.txt ブラウザはFireFox3.0.11とIE8.0の両方でダメでした。 なぜJavaScriptファイルだけ読み込めないのでしょうか。 ご教授お願いいたします。 ※ちなみに、別のレンタルサーバーにアップロードしたら問題なく読み込めました。 しかし、そこにはDBがなかったので、なるべく今のレンタルサーバーを使いたいのです。。

  • PHPからjavascriptへGETで値を渡すとき

    初歩的な質問で失礼いたします。 PHPからjavascriptへGETで値を渡すときにマルチバイト文字が文字化けしてしまいます。 javascriptのjQueryというライブラリを利用しています。 具体的には、 -------------- test.js -------------- var url = 'test.php?code=' + code; $.get(url, function(data){ alert(data); } -------------------------------------- --------------- test.php ------------- $input = $_GET['code'];  ・・・mysqlの処理・・・ echo $output; --------------------------------------- という処理をしています。 test.js → test.phpへ渡す値はマルチバイトではないので問題ないのですが、 test.php → test.jsへ返す値はマルチバイトで文字化けしてしまいます。 php側でrawurlencode関数でエンコードしてから、javascript側でdecodeURI関数を使用してデコードしたのですが、うまくデコードできませんでした。 恐らくデコードの仕方が悪いんだと思うんですが。。。 分かりにくい説明で恐縮ではございますが、ご回答をお願いいたします。 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • Jqueryのjavascriptが読み込まれません

    はじめまして。 Jqueryのsuperfishを使用したサイトを作っているのですが、javascriptファイルが読み込まれていないような状態になっています。 具体的には 1)ローカル環境では問題なく読み込まれている 2)サーバにアップすると、同階層の別ページ(A.htmlとします)では機能しているのに、特定のページ(B.html)では読み込まれていない ※A.htmlとB.htmlで同じ効果(superfishによるアコーディオンナビ実装)を得たい 3)A.htmlの<head>内javascriptに関する記述とB.html内同箇所の記述は全く同じ 4)B.html内の他の単独のjavascriptは問題なく読み込まれる という状況です。 この場合どのような原因が考えられるのでしょうか。 javascriptについては全くの初心者であり、どうにも解決できず、困っています。 ちなみに使用しているjqueryはjquery-1.2.6.min.jsです。 (大元であるA.htmlは違う方にコーディングしてもらい、そのデータを元にB.htmlをコーディングする作業をしています) jquery-1.2.6.min.jsもしくはsuperfish.js内に動かすhtmlへのパスが記載されているのかとも思いましたが、知識不足で該当の箇所が見つけられず…。 ご意見を頂ければ幸いです。 どうぞよろしくお願い致します。

  • javascriptとjQueryについて

    javascriptの基礎部分を学びその後、jQueryを学習しました。 ある程度jQueryはできるようになりました。 しかしjQueryはjavascriptのライブラリでjavascriptを簡単に書けるということなのでjavascriptも深いところまで学習すべきか迷っています。 jQueryを学習したのならjavascriptは深いところまでしなくてもいいのでしょうか? やはり使用用途で学習するべきとか変わってくるものなのでしょうか? もし変わってくる場合、こういうことがしたいならjQueryではできないからjavascriptも学習すべきなど簡単な例など出せれたらよろしくお願いします。 現在はPHPとmySQLを学習しています。 質問文が下手で伝わりにくいかもしれないですがよろしくお願いします。

  • javascript 動作がうまくいかない

    javascriptは、ほぼわかりません。 参考url http://histerian.net/pallax/ パララックス サイトを構築しておりました。 メニューを押してスクロール移動すると、上部のmenuがアクティブ状態になります。 しかし、下にスクロールしてからメニューを押して、上に移動すると、menuが2つ、アクティブ状態になってしまいます。 ただ、1px上にずらすだけで低いコンテンツのメニューのアクティブが消え、本来のコンテンツのmenuがアクティブになります。 下へスクロールしてから、メニューを押して上に戻ったときに、該当のmenuのみ、アクティブ状態になるようにしたいです。 使用している元は cool-kitten というサンプルです。 url https://www.jqueryscript.net/demo/jQuery-Responsive-Parallax-Scroll... 使用しているjQueryは以下になります。 jquery.easing.1.3.js jquery.stellar.min.js waypoints.min.js 動作を制御しているjavascriptファイルは以下になります。 scripts.js どなたかご教示していただけないでしょうか よろしくお願い致します

  • 【javascript】2つ同時に上手く動かない

    javascript初心者です。 現在作成している画面に2つのjavascriptを動かしたいと思っております。 しかしながら、一つずつでは動くのですが、同時に表示すると上手く動作しません。 いい方法などありましたらご教授お願い致します。 【htmlのヘッド】 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <script type="text/javascript" src="js/jquery.coda-slider-2.0.js" charset="utf-8"></script> <script type="text/javascript" src="js/jquery.easing.1.3.js"></script> <script type="text/javascript" src="js/sm_scroll.js"></script> <script type="text/javascript" src="js/jcaption.min.js"></script> <script type="text/javascript" charset="utf-8"> $(function(){ $('#coda-slider-1').codaSlider({ autoSlide:false, autoHeight:false, autoSlideStopWhenClicked:false, autoSlideInterval:10000, firstPanelToLoad:1, dynamicArrows: false, }); }); </script> <script type="text/javascript" src="js/prototype.js"></script> <script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script> <script type="text/javascript" src="js/lightbox.js"></script> 【上部のjavascript】 Coda-Slider 参照URL:http://phpjavascriptroom.com/exp3.php?f=include/ajax/jquery_plugin_slider/coda_slider.inc&ttl=%E8%A8%AD%E7%BD%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB 【下部のjavascript】 litebox 参照URL:http://lokeshdhakar.com/projects/lightbox2/ javascript内が初期化されているのが問題なのでしょうか? 解決の方法などありませんでしょうか? 以上、宜しくお願い致します。

  • javascriptファイルは1つに統合できますか

    javascript初心者のため、どなたかご教示いただけるとありがたいです。 html内に外部javascriptファイルを読み込むようにscript要素で記述しているのですが、複数の外部jsを読み込んでおり、可能であればhtml内の記述を簡略化したいと思っております。 <現状> <script type="text/javascript" src="・・・/js/jquery.js" charset="utf-8"></script> <script type="text/javascript" src="・・・/js/jquery.page-scroller.js" charset="utf-8"></script> <script type="text/javascript" src="・・/js/jquery.cookie.js"></script> <script type="text/javascript" src="・・・/js/ui.core.js"></script> <script type="text/javascript" src="・・・/js/jquery.easing.1.3.js"></script> <script type="text/javascript" src="・・・/js/jquery.scrollfollow.js"></script> <script type="text/javascript" src="・・・/js/jquery.bxslider.js"></script> <script type="text/javascript" src="・・・/js/set_slider.js"></script> ・・・ jsに対する基礎的な質問ですが、上記のような複数の外部jsファイルを、1つの外部jsファイルにまとめることは可能なのでしょうか? (単純に1箇所にコピー&ペーストするようなイメージで) お手数ですが、ご教示のほど、宜しくお願い致します。

  • javascriptライブラリの使い方

    aa.js bb.js cc.js の3つのjavascriptを使ったサイトを作成中です。 ヘッダーに <script src="aa.js" type="text/javascript"></script> <script src="bb.js" type="text/javascript"></script> <script src="cc.js" type="text/javascript"></script> と記載し、「aa.js bb.js cc.js 使う前提のスクリプト」をサイト上に記載しているのですが、aa.js bb.js cc.js のそれぞれが重いため、サイト記載のスクリプトがaa.js、bb.js、cc.jsより先に読み込まれてしまい、思ったような表示が出来ません。 (cc.jsが読み込まれないままの状態でサイトのスクリプトを読み終わってしまう) そこで調べてみると、下記のようなライブラリを発見しました。 http://notnil-creative.com/blog/archives/1361 このライブラリ(script.js)を使うと、通常は以下のように書くJavascriptの読み込みが、 <script src="jquery.js"></script> <script src="my-jquery-plugin.js"></script> <script src="my-app-that-uses-plugin.js"></script> 下記のように書くことができるそうです。 $script('jquery.js', function () { $script('my-jquery-plugin.js', function () { $script('my-app-that-uses-plugin.js') }) }) この書き方で、ページのレンダリングを阻害せず、非同期にJavascriptを読み込むことができ、なおかつ「jQueryが読み込まれてからjQueryプラグインを読み込み、そのあとウェブサイト用のスクリプトを読み込む」というような依存関係のある複数のJavascriptファイルの読み込みにも対応できちゃいます。 という優れものであり、私の要求にぴったりと思いました。 早速、http://notnil-creative.com/blog/archives/1361のページからscript.jsをダウンロードしたのですが、使い方がわかりません。 例ではヘッダーに $script('jquery.js', function () { $script('my-jquery-plugin.js', function () { $script('my-app-that-uses-plugin.js') }) }) と記載すればOKと書いてあります。 ただ、この記入方法で動くようにするためには、$scriptがscript.jsに連動していることを記載すべき だと思いますが、javascriptでそのような例を見たことがなく困惑しています。 このスクリプトの使い方(ヘッダーの記入方法)について、ご教授頂けませんでしょうか? 宜しくお願い致します。

  • JavascriptとJqueryを混在し記述

    JavascriptとJqueryが混在したスクリプトファイル(.js)の書き方について質問です。 Jquery自体がjavascriptで書かれており結局はjavascriptであるということは理解していますが 気になるので質問させてください。 通常、javascriptの書き方として、スクリプトやその関数定義を1つのjsファイルに書くと思いますが、 Jqueryが混在しても考えは一緒で、ただ、ページが全て読み込まれた後(要素を特定できるようにするため)に実行したい場合の スクリプトを $(function(){ //Jquryや通常のjavascript }); の中にこのように書けばいいって話ですよね? つまり1つのjsファイル内に以下のようにスクリプトを混在させた書き方でもいいのですよね? ===== script.js ====== //(1)Javaスクリプト ←jsファイルが読み込まれたら実行するスクリプト //関数定義 function test(){ //Javaスクリプト } //(2)Jquery ←ページが全て読み込まれた後で実行するスクリプト $(function(){ //Jqueryスクリプト //Javaスクリプト }); 初歩的なことかもしれませんがすいません。

  • 複数のバージョンのjQueryを同時に使用

    複数のjQueryライブラリを同時に使用するには http://jsajax.com/articles/jQueryUsingMultipleVersion/2012 上記サイトを参照しましたがわからなかったので質問いたします。 「1.3.2と1.1.3.1」のようにバージョンの違うjQueryライブラリを同時に使いたいのですが、 以下のように記述した場合、Feature Listが正常に動作しません。 バージョンの違うjqueryライブラリを同時に使うにはどのように設定すればいいのでしょうか よろしくお願いいたしします <script type="text/javascript" src="jquery/1.1.3.1/jquery.min.js"></script> <script type="text/javascript" src="jquery/1.3.2/jquery.min.js"></script> <!-- ▼jquery_auto --> <script type="text/javascript" src="jquery/jquery_auto_j.js"></script> <!-- ▼animatedcollapse.js --> <script type="text/javascript" src="jquery/animatedcollapse.js"></script> <script type="text/javascript" src="jquery/animatedcollapse-settings.js"></script> <!-- ▼Feature List --> <script type="text/javascript" src="jquery/jquery.featureList-1.0.0.js"></script> <script language="javascript"> $(document).ready(function() { $.featureList( $("#tabs li a"), $("#output li"), { start_item:0 } ); /* // Alternative $('#tabs li a').featureList({ output:'#output li', start_item:1 }); */ }); </script>