Webアプリの発展に伴って、問題点が解決し、また新たな問題が提示されるという流れが続いている。従来指摘されていたデメリットと提案されている解決技術の例は以下である。歴史.ウェブが誕生した時点ではウェブは静的Webサイトがハイパーリンクでつながれたもの、すなわちWebサーバ上に配置したHTMLファイルをウェブブラウザで閲覧しリンクを飛んでネットサーフィンするものであった。その後CGIの登場により、ユーザからの入力に応じたHTML文書などのリソースの動的生成・返却が可能になった。これにより様々なウェブアプリケーション(あるいは動的Webページ)を構築できるようになった。技術.プログラミング言語.HTML.DOM.通信プロトコル.キャッシュ・同期.Webアプリはクライアント・サーバモデルを基本としており、サーバへのリソースリクエストを高い頻度でおこなう。より高速な動作、ネットワーク途絶下での動作を目的に、リソースのコピーを提供するキャッシュが要件に合わせて用いられる。以下のように、キャッシュはクライアントからサーババックエンドまで様々な段階でおこなわれる。クライアントに近ければ近いほどネットワーク遅延は小さくオフライン動作に強く、一方で同期の難しさも発生する。アクセス制御.データバインディング.データアクセス.アーキテクチャ.より良いアプリケーションを目指しWebアプリは日々機能が強化され、同時に複雑性も増加している。複雑性に対応するため、様々なソフトウェアアーキテクチャが利用・考案されている。WebアプリはWebすなわちネットワークを介した分散コンピューティングとしての側面を持つため、それに応じた特性をもつアーキテクチャが選ばれる場合が多い。機能単位=サービスの連携.複雑性に対処する方法論として「独立・自立した機能=サービス」を連携させて大きなアプリケーションをつくる方法がある。これに着目したアーキテクチャとしては以下が挙げられる。機能による分類.メディア(動画・音声).高レベルの要素から低レベルのAPIまでWeb標準で提供されている。オフライン.Webサーバとの通信(ネットワーク)が途絶している状態をオフラインという。ソフトウェアがオフライン時にも動作するにはローカルに保存されたプログラム.