現在MonacaでNiftiCloudのサーバーを使ってアプリケーションを開発しています。
この質問ページのような、ユーザが情報を入力して新規にページを構築する方法が解らずにいます。
色々な情報を探しても、ローカル環境で実験だといったチュートリアルばかりでして、そもそも新しくページを作成する仕組みも解らないので情報を探すにしても検索用語が出てこない・・・
お力を貸していただきたいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
質問者さんの知識レベル、作りたいアプリのイメージが分からないのですが、「Webアプリで(重要)」動的にページを作る方法としては大きく2種類あります。
1つ目はサーバサイドで動的にHTMLを生成しクライアント側に返すという考え方。動的な処理を記載する言語としてPHPやRubyが有名です。
2つ目はサーバの値の変更を検知してクライアント側で動的にHTMLを再構成するという考え方。動的にページを再構成する言語としてJavaScriptが有名です。
前者を同期通信、後者を非同期通信と呼びます。(厳密には後者が後発で、従来から普遍的な方法として使われていた前者と区別するために「非同期通信」とわざわざ区別して呼ばれたという経緯があるため、前者はわざわざ「同期通信」と呼ばれることは少ないです)
ここで、上記は「Webアプリ」の方式であることを強調しておきます。
Webアプリの定義は、「Webブラウザ(InternetExproler、GoogleChromeなど)で動作するアプリケーション」とします。
重要なのは、Monacaで作成するアプリケーションはWebアプリではないということです。言語としてHTMLとJavaScriptで記述しますが、ビルド後の実態はAndroidやiOSネイティブのアプリケーションです。
これはこれで素晴らしい技術で、Cordovaというプラグインが利用されているためにそのようなことができるですがその詳細は割愛します。
Monacaで作るアプリはWebアプリではありませんが、画面の再構成の方法としては「非同期通信」と同じような手法が使えます。
つまり、サーバ側から値を返却させて、その値に基づいてJavaScriptでHTMLを再構成していくというような考え方が採用できます。
逆に、「同期通信」の手法はちょっと難しいです。なぜならMonacaを利用して作成したアプリはHTMLを表示できないので、サーバサイドで生成したページが返却されてきても表示できないからです。
このteratailのようなページを非同期通信で実現するためには、あくまでイメージですが、最初からHTMLには質問、回答などの全てのページ構成を記述しておきます。
回答がない場合は、回答のページ構成は非表示にします。回答があったとサーバーから検知を受けたら、回答ページを表示します。こういった処理をJavaScriptで記述し、動的にHTMLが変更されるようなイメージだ実現できるかと思います。
そういった非同期通信処理をサポートするのがjQueryなどといったJavaScriptフレームワークです。
回答になっておりますでしょうか。。。
投稿2017/04/03 01:45
総合スコア1947
0
ページを丸々新規に作成するというよりはページのテンプレートを作成しておいて、そこに可変な項目を動的に反映させる方法が良いと思います。可変な項目とはこのページで言うと、タイトル、内容、質問ユーザ名等のことです。反対に不変な項目とはページの段組み、クリップボタン、SNS連携ボタンなどです。
実際の流れとして、
- 「質問する」をクリックすると質問を記入できる
- 質問を確定するとその内容やタイトル、質問者情報がデータベースに保存される。
- このページの表示をするときはデータベースに保存されている項目を取得してきて、テンプレートの各項目にあわせて表示する。
必要な言語としてはデータベースアクセスにはPHPなどのサーバサイド言語、PHPが取得した情報をページに反映させるためにJavascriptを使用するのがいいと思います。
検索ワードは「Webページ 動的生成」などで検索するとこのようなページが出てくると思います。
投稿2017/04/02 23:15
総合スコア191
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/03 00:46
2017/04/03 00:59
2017/04/03 01:04 編集
2017/04/03 01:17
2017/04/03 01:48
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/03 01:53
2017/04/03 02:01