Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML5 web应用程序,通过JSON、PHP或动态定义路由?_Javascript_Html_Web Applications_Single Page Application - Fatal编程技术网

Javascript HTML5 web应用程序,通过JSON、PHP或动态定义路由?

Javascript HTML5 web应用程序,通过JSON、PHP或动态定义路由?,javascript,html,web-applications,single-page-application,Javascript,Html,Web Applications,Single Page Application,我正在开发一个没有特定MVC框架的HTML5 web应用程序。我不确定如何定义所有可能的路线 目前,一旦任何URL被点击,我都会立即执行此操作: 如果用户调用domain.com/test,应用程序将创建一个新页面“test”。然后,页面构造函数将获得一个把手模板,创建视图ect。这是第一次访问/测试时完成的。在以后的每次访问中,已经可用的视图都会插入到DOM中 这显然是有缺陷的,因为访问domain.com/thispagedoesntextist或任何其他不可用的URL时,没有Handleb

我正在开发一个没有特定MVC框架的HTML5 web应用程序。我不确定如何定义所有可能的路线

目前,一旦任何URL被点击,我都会立即执行此操作:

如果用户调用domain.com/test,应用程序将创建一个新页面“test”。然后,页面构造函数将获得一个把手模板,创建视图ect。这是第一次访问/测试时完成的。在以后的每次访问中,已经可用的视图都会插入到DOM中

这显然是有缺陷的,因为访问domain.com/thispagedoesntextist或任何其他不可用的URL时,没有Handlebar模板仍然会创建页面对象

要解决这个问题,我需要预定义的路线,对吗?这意味着我需要首先定义哪些页面、路由和模板是可用的,然后所有其他人都会得到404。有没有正确的方法

我想到的唯一方法是创建一个JSON文件、JS对象或PHP数组,并定义所有路由:

var routes = [
    {
        title: 'Home',
        slug: '/home',
        template: 'pages/home.hbs'
    },
    {
        title: 'Imprint',
        slug: '/imprint',
        template: 'pages/imprint.hbs'
    },
    {
        title: 'About us',
        slug: '/about',
        template: 'pages/about.hbs'
    }
];
然后匹配当前访问的URL。如果它不在这个数组中,我将返回404页面

这样做吗?我不确定是否有正确的方法,如果我现在要求最佳实践,我很抱歉

让我们这样问:在单页web应用程序中定义路由的一般推荐方法是什么


如果我在上面发布的方法实际上是正确的,那么在JSON或JS文件中使用它是否存在安全风险,或者我应该在PHP中使用它?

这是一个相当大的问题,它带来了另一个问题:您是否拥有每个页面的权限以及如何管理它们

然后,就构建单页应用程序而言,不能使用php路由

最后,我要说的是,有很多解决方案可用,或者你可以使用。还是你需要自己做

我想自己去做——去理解它是怎么做的。我不是想使用PHP路由,只是想将数组保存在那里并通过AJAX请求它。我不需要权限。所有这些页面都是公开的。