如何在HTML5 + Javascript中制作github托管的交互式演示应用程序,可在线和离线工作

时间:2017-08-27 08:23:34

标签: javascript html5 github demo

我正在努力制作小型互动物理演示和迷你游戏,这些游戏应该有效。

  1. 离线 - 只需在浏览器中打开.html文件(最好没有任何localhost网络服务器)
  2. online - 托管在github上并使用http://rawgit.com/
  3. 但我遇到了几个问题:

    1. 在线我必须从cdnjs加载*.js库,而我必须从某个本地文件加载它们。如何使.html能够自动从正确的源加载依赖项?
    2. 从多个独立文件中编写网页的工作方式也不同于在线和离线
    3. 从外部文件加载资源(着色器,3D几何对象) - 相同的故事。
      • 例如,如何让用户从gihub服务器上托管的文件中选择(例如,取决于某些<select>小部件)哪个着色器或3D模型?
    4. 最痛苦的是用户硬盘驱动器的文件I / O(即保存和加载用户创建的数据)。出于某些安全原因,文件浏览器不支持它,我发现的解决方案要么a)不工作,要么b)非常复杂的解决方法或c)有很多依赖项(jQuery)。我发现的最好的是saveload
    5. 如果我运行一些localhost服务器(最简单的是use python),这些问题会变得更好。但这使得最终用户不方便。我想要一个.html文件,最终用户可以在他的网络浏览器中离线打开它,它可以在没有任何服务器的情况下工作。

      node.js 环境在某种程度上是否与此目的相关/有用?

      示例:

      有一些我正在做的事情的例子: https://rawgit.com/ProkopHapala/SimpleSimulationEngine/master/projects/SpaceCombat/HTML/StickSpaceCraft.html

      有一个例子可以在线下工作但不在线: https://github.com/ProkopHapala/SimpleSimulationEngine/blob/master/js/PlanetDesigner/PlanetDesigner.html

      背景 我从未对网络技术感兴趣。但最近我发现使用WebGL和其他HTML5的javascript在我感兴趣的领域(数学数学,物理,3D图形,游戏)中非常有用。受到示例1234的启发,我开始学习javascript和HTML,目的是制作简单的演示,以交互方式说明我感兴趣的领域的一些问题

1 个答案:

答案 0 :(得分:0)

据我所知,你只能在github中使用前端技术,所以你必须离开节点。

但是,为了让您的应用程序在离线和在线工作,您可能能够构建一个CACHE MANIFEST文件(例如offline.manifest)并编写要在其中缓存的文件。例如:

CACHE MANIFEST
mystyles.css
image/mypic.jpg
jquery-1.4.min.js
script.js
index.html 

并在html中使用manifest属性加载它:

<html manifest="offline.manifest">

有一种名为indexedDB的技术,您可以将其用作前端数据库。你也可以使用它。