应用程序在生产中加载需要很长时间

时间:2016-03-18 17:27:55

标签: javascript express heroku angular systemjs

我已将我的角度2应用程序推到了heroku上,但加载时间太长了。

有没有办法捆绑所有东西,因为现在我在index.html中有这个

<html>
<head>
    <base href="/">
    <title>Angular 2 Arc</title>
    <link rel="icon" type="image/x-icon" href="favicon.ico">
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body>
  <ng2-app>Loading...</ng2-app>
  <!-- Load Angular 2 Core libraries -->
  <script src="es6-shim/es6-shim.min.js"></script>
  <script src="systemjs/dist/system-polyfills.js"></script>
  <script src="angular2/bundles/angular2-polyfills.js"></script>
  <script src="systemjs/dist/system.src.js"></script>
  <script src="rxjs/bundles/Rx.js"></script>
  <script src="angular2/bundles/angular2.dev.js"></script>
  <script src="angular2/bundles/router.dev.js"></script>
  <script src="angular2/bundles/http.js"></script>
  <!-- Load Bootstrap and Jquery -->
  <script src="lib/jquery/jquery.min.js" charset="utf-8"></script>
  <script src="lib/bootstrap/js/bootstrap.min.js" charset="utf-8"></script>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.min.css" />
  <link rel="stylesheet" href="/lib/bootstrap/css/bootstrap.min.css" media="screen" title="no title" charset="utf-8">
  <link rel="stylesheet" href="assets/css/app.css">
  <!-- Configure SystemJS -->
  <script>
      System.config({
          defaultJSExtensions: true,
          packages: {
              boot: {
                  format: 'register',
                  defaultExtension: 'js'
              }
          }
      });
      System.import('js/boot')
              .then(null, console.error.bind(console));
  </script>
</body>
</html>

我的设置是快速服务器和系统JS。

server.js

var express = require('express');
var bodyParser = require('body-parser')
var fs = require("fs");

// initialize express
var app = express();

// declare build and node_module paths

app.use(express.static("./build"));
app.use(express.static("./node_modules/"));

// parse request body
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())

var body;
// route to send json data from angular 2
app.post('/export', function(req, res){
  body = req.body;
  res.json("Got the data!");

  fs.writeFile('parameters.json', JSON.stringify({body}, null, 4), function (err) {
    if (err) return console.log(err);
    console.log('Data json file created!');
  });
});


// start server
app.listen(process.env.PORT || "3001", function(){
  console.log("Express server running on localhost:3001");
});

1 个答案:

答案 0 :(得分:1)

如果它的免费heroku等级可能是因为它在你请求时睡觉了吗?

您可以缩小和连接js文件以减少加载时间。

以下是有关如何使用gulp任务执行此操作的指南: https://caveofcode.com/2016/03/gulp-tasks-for-minification-and-concatenation-of-dependencies-in-angularjs/