Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
Performance Meteor用户和主干非常慢_Performance_Backbone.js_Meteor - Fatal编程技术网

Performance Meteor用户和主干非常慢

Performance Meteor用户和主干非常慢,performance,backbone.js,meteor,Performance,Backbone.js,Meteor,我创建了一个易于内容共享的项目。您可以在此处查看我的项目: 你可以用user@example.com以123456作为密码,以验证用户身份测试站点。当然,该网站还有一些漏洞 我使用meteor用户包和主干包浏览页面。 在本地主机上,没有问题。为了进行测试,我将项目上传到meteor服务器。现在,当我登录并浏览页面时,每次我导航到一个新页面时,应用程序都会因为url更改而“检查”客户端的用户。这真烦人 当然,我只能通过调用Session.set('page_id',..)浏览页面,但我的目标是能

我创建了一个易于内容共享的项目。您可以在此处查看我的项目:

你可以用user@example.com以123456作为密码,以验证用户身份测试站点。当然,该网站还有一些漏洞

我使用meteor用户包和主干包浏览页面。 在本地主机上,没有问题。为了进行测试,我将项目上传到meteor服务器。现在,当我登录并浏览页面时,每次我导航到一个新页面时,应用程序都会因为url更改而“检查”客户端的用户。这真烦人

当然,我只能通过调用Session.set('page_id',..)浏览页面,但我的目标是能够向用户发送服务器上特定页面的url

代码类似于meteor页面中todos示例中的代码:

Meteor.subscribe('pages', function () {
    if (!Session.get('page_id')) {
    var page = Pages.findOne({}, {sort: {owner: -1}});
    if (page)
      Router.setPage(page._id);
  }
});

...

var PagesRouter = Backbone.Router.extend({
  routes: {
    ":page_id": "main"
  },
  main: function (page_id) {
    Session.set("page_id", page_id);
  },
  setPage: function (page_id) {
    this.navigate(page_id, true);
  }
});

Router = new PagesRouter;

Meteor.startup(function () {
  Backbone.history.start({pushState: true});
});
我在这里问的原因是:我在网上搜索,找不到有同样问题的人。所以要么以前没人尝试过,要么有一个简单的解决方案

编辑:我如何称呼页面

<template name="pages"> 
    {{#each pages}}
        <p><a href="/{{_id}}">{{title}}</a>
        {{#if isauthor}}
            <a class="delPage" href="javascript:delPage('{{_id}}')">delete</a>
        {{/if}}
        </p>
    {{/each}}
</template>

{{{#每一页}

{{{#如果是作者}
{{/if}

{{/每个}}
我不知道您是如何呈现页面链接的,但是像这样的链接:

应该这样读:


好,我解决了问题,更改了(true)

至(假)

当然,像穆比克斯建议的那样增加一个锚。谢谢你的提示! 在上述网站上是最新的

我今天花了一些时间在主干文档上,但我无法想象为什么这会起作用?特别是我想知道为什么

{hashChange: false}

这里不行吗?

谢谢你的回答。“应该读”是什么意思?路由器?我将编辑我的问题,并向您展示如何调用页面。如果我调用href=“/{{{u id}}”什么都不会发生。。。到目前为止,我阅读了一些使用主干路由器的示例。问题是:不应该呈现整个页面,而应该呈现内容。因此,我决定阻止浏览器通过以下行进行导航:this.navigate(page_id,true);但还是一样吗?那么,是否有可能通过单击链接阻止页面的“重新加载”,但仍然根据url更改会话“page_id”?我觉得
href=“/{{u id}}”
肯定可以工作。为了验证这一理论,我打开一个页面,复制了另一个页面的链接,并将其粘贴到地址栏中,然后手动输入#,然后按Enter键。新页面加载时未刷新。很抱歉,我通过修改开发工具中的链接再次尝试,但它不起作用:(我在地址栏中尝试了它,但它对我来说甚至不起作用…?您使用哪个浏览器?您可以尝试使用
“/:page\u id:“main”
。也就是说,使用斜杠。
Meteor.startup(function () {
  Backbone.history.start({pushState: false});
});
{hashChange: false}