我对流星相当陌生,对JS也相对陌生。停止流星http减缓页面请求
我使用的代码是:
服务器/ methods.es6
var cheerio = Meteor.npmRequire('cheerio');
/*****************************************************************************/
/* Server Only Methods */
/*****************************************************************************/
Meteor.methods({
/*
* Example:
*
* '/app/items/insert': function (item) {
* }
*/
player: function() {
const url = 'http://cdn.content.easports.com/fifa/fltOnlineAssets/C74DDF38-0B11-49b0-B199-2E2A11D1CC13/2014/fut/items/web/165434.json';
const response = Meteor.http.get(url);
return response;
}
});
客户端/模板/汽车/ cars_list.es6
Meteor.call('player', function (err, res) {
if (err) console.log(err);
console.log(JSON.parse(res.content));
Session.set('player', JSON.parse(res.content));
});
/*****************************************************************************/
/* CarsList: Event Handlers */
/*****************************************************************************/
Template.CarsList.events({
});
/*****************************************************************************/
/* CarsList: Helpers */
/*****************************************************************************/
Template.CarsList.helpers({
cars: function() {
return Cars.find();
},
player: function() {
return Session.get('player');
}
});
客户端/templates/cars/cars_list.html
<template name="CarsList">
<h1>Cars List</h1>
{{ player.Item.FirstName }}
<table class="table table-hover">
<thead>
<tr>
<th>Brand</th>
<th>Model</th>
<th>Fuel Type</th>
<th>Body Style</th>
<th>Top Speed</th>
<th>Power</th>
<th>Edit</th>
</tr>
</thead>
<tbody>
{{# each cars }}
{{> car }}
{{/ each }}
</tbody>
</table>
</template>
它大部分只是测试代码来尝试和执行HTTP请求。
当我删除所有与player
有关的代码时,一切都是即时的。当player
代码在那里时,页面立即加载,但cars
数据直到player
的HTTP请求得到解决才显示。有没有办法把HTTP请求放在后台,而其他所有的东西都做它以前做的事情?
还有一种方法来循环HTTP请求,并显示数据,当我收到它回来?
我打算做的是抓取一些数据的网站,然后它会吐出来的客户端,因为它得到它,但这样做似乎阻止我的Mongo数据拉直,直到所有请求都得到解决 –
真棒谢谢这绝对是对我来说正确的一步。负载很快,所以将其标记为接受:) –