gpt4 book ai didi

node.js - meteor 真正的路由器,用于无需 JavaScript 渲染的多页面应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 23:44:23 25 4
gpt4 key购买 nike

我是 meteor 新手,我正在尝试执行多页面应用程序,其中http://www.mydomain.com/page1将产生与http://www.mydomain.com/page2完全不同的页面。
我所说的完全不同是指我不希望客户端呈现页面。
我尝试使用 meteor 路由器,但我得到的是这样的:

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/myapp.css?9297ad4aa173c4e0c19aebd27c62a5c43242bb93">


<script type="text/javascript">
__meteor_runtime_config__ = {"ROOT_URL":"http://localhost:3000","serverId":"iMp4kgzzeqDtktJoY"};
</script>

<script type="text/javascript" src="/packages/underscore/underscore.js?6d71e6711255f43c0de8090f2c8b9f60534a699b"></script>
<script type="text/javascript" src="/packages/meteor/client_environment.js?07a7cfbe7a2389cf9855c7db833f12202a656c6b"></script>
<script type="text/javascript" src="/packages/meteor/helpers.js?2968aa157e0a16667da224b8aa48edb17fbccf7c"></script>
...
...MANY MANY MANY SCRIPTS.... ?!?
...
...
<script type="text/javascript" src="/myapp.js?2866dcdb5c828b129cdd3b2498a4bf65da9ea43f"></script>


<title>myapp</title>
</head>
<body>

</body>
</html>

这不是我想要的。我希望 page1 路线会返回我:

<!DOCTYPE html>
<html>
<head>
My meta tags
</head>
<body>
page1
</body>
</html>

我希望 page2 返回具有不同内容的不同元标记。
为了清楚起见,我们假设我的客户有时没有 JavaScript。我不是问 meteor 是否是正确的框架!我只是问我是否可以用 meteor 做到这一点。

最佳答案

与传统的 LAMP 堆栈相比,Meteor 的工作方式有点不同。基本上,它的工作原理是仅将 DOM 修补到需要更改的位置,而不是重新下载整个网页。它可以在现代网络浏览器上带来非常令人满意的最终用户体验。

要使用 meteor 路由器,您需要找到一个要使用 {{renderPage}} 为不同页面添加新数据的位置。 。你可以使用类似的东西

<head>
<title>xx</title>
</head>

<body>
{{renderPage}}
</body>

<template name="page1">
<h2>Hello!</h2>
</template>

<template name="page2">
<h2>Ola!</h2>
</template>

现在您需要在客户端 JavaScript 中定义一个路由器:

Meteor.Router.add({
'/page1': 'page1',
'/page2': 'page2'
});

所以如果你加载/page1你会看到你好!如果您加载 /page2你会看到奥拉!如 <template name="page2">..</template> 中所定义

对于元标记,您需要使用 javascript 来创建它们。像这样的东西

$('head').append("<meta...");

这又取决于您的偏好,我个人发现与其他基于“瘦”的网站相比,这些类型的应用程序在网页之间的加载速度快得离谱。 (看看meteor.com,看看页面之间交换的速度有多快)。然而,浏览器确实需要 JavaScript。

值得注意的是,在生产模式下只会有 1 个脚本标记。

关于node.js - meteor 真正的路由器,用于无需 JavaScript 渲染的多页面应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16387113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com