我的网站 - https://sandbox.billionlearners.com => 它位于 Angular 12 SSR(在节点上运行)
渲染页面所需的总时间为@6秒,但初始服务器端页面需要@4秒(其大小小于200Kb)
命令行dig time https://sandbox.billionlearners.com花费的时间非常少 - @150ms
https://tools.pingdom.com/ => 即使最初我确实看到@115KB,然后立即更改为@5MB。
我还检查了我的服务器箱统计信息(CPU/网络/RAM 等)- 根本不是问题。
我的 CloudHosting 公司说 - 这是因为总规模,我不相信。SSR 本身的全部目的都落空了。我希望用户快速看到初始页面,然后它将加载大的最终页面。
我是否遗漏了 SSR 代码中的某些内容,或者 CloudHosting 端是否存在问题?
提前致谢
更新:Angular.json
...
"styles": [
"./node_modules/bootstrap/dist/css/bootstrap.min.css",
"./node_modules/@fortawesome/fontawesome-free/css/all.min.css",
"./node_modules/bootstrap-social/bootstrap-social.css",
"./node_modules/primeicons/primeicons.css",
"./node_modules/primeng/resources/themes/nova/theme.css",
"./node_modules/primeng/resources/primeng.min.css",
"./node_modules/primeflex/primeflex.min.css",
"./node_modules/prismjs/plugins/toolbar/prism-toolbar.css",
"./node_modules/prismjs/themes/prism-coy.css",
"./node_modules/ngx-sharebuttons/themes/modern/modern-light-theme.scss",
"./node_modules/ngx-owl-carousel-o/lib/styles/prebuilt-themes/owl.carousel.min.css",
"./node_modules/ngx-owl-carousel-o/lib/styles/prebuilt-themes/owl.theme.default.min.css",
"src/styles.scss"
],
"scripts": [
"./node_modules/jquery/dist/jquery.min.js",
"./node_modules/bootstrap/dist/js/bootstrap.bundle.min.js",
"./node_modules/he/he.js"
],
...
Run Code Online (Sandbox Code Playgroud)
索引.html
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [['$#','#$'], ['\\(','\\)']],
processEscapes: true
}
});
</script>
<script type="text/javascript" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS_CHTML"></script>
<!--for Google reCaptch …Run Code Online (Sandbox Code Playgroud) 我有Employee(父母)和Emp_Contacts(孩子).只有Employee类具有单向映射.
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.Digits;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.NotEmpty;
@Entity
@Table(name="EMPLOYEE")
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Size(min=3, max=50)
@Column(name = "NAME", nullable = false)
private String name;
...
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "emp_id")
private Set<Emp_Contacts> contacts;
...getters and setters...
Run Code Online (Sandbox Code Playgroud)
我的Emp_Contacts情况如下:
@Entity
@Table(name = "Emp_Contacts") …Run Code Online (Sandbox Code Playgroud) 我的DTO具有String格式的日期字段.我的实体的日期为LocalDate.目前我正在从地图中跳过它,然后手动显式设置它(String to Date,反之亦然).
可以自动转换吗?我在Spring bean中尝试了Converter但是它给了我很多编译错误(类型转换器不接受参数,不会覆盖转换方法 - 转换()也有很多错误).
@Bean
public ModelMapper studentModelMapper() {
....
Converter<String, LocalDate> toStringDate = new AbstractConverter<String, LocalDate>() {
protected String convert(String source) {
return source == null ? null : new LocalDate(source);
}
};
....
}
Run Code Online (Sandbox Code Playgroud)
我对modelmapper不太熟悉.任何帮助是极大的赞赏.
正如建议我尝试使用LocalDate for DTO,但问题是当我在前面发送此实体(REST调用)时,我得到了JSON.
"dateOfBirth": {
"year": 1972,
"month": "JANUARY",
"monthValue": 1,
"dayOfMonth": 4,
"dayOfWeek": "TUESDAY",
"era": "CE",
"dayOfYear": 4,
"leapYear": true,
"chronology": {
"id": "ISO",
"calendarType": "iso8601"
}
}
Run Code Online (Sandbox Code Playgroud)
我的前端开发人员需要"YYYY-MM-DD".
我正在一个项目(Angular2)上进行动态创建Observable并将其放入数组中
var ObservableArray : Observable<any>[] = [];
//filling up Observable array dynamically
for (var i = 0; i < this.mainPerson.children.length; i++) {
ObservableArray.push(Observable.fromPromise(this.determineFate(this.mainPerson.children[i])));
}
}
var finalObservable: Observable<any> = Observable.concat(ObservableArray);
finalObservable
.subscribe( data => {
//here I expected to execute determineFate() for all observables inside array
console.log("determine fate resolved data returned [" + data + "]");
}, error => {
console.error("error on Age Year for Characters")
},() => {
//Here I expect this gets executed only when all Observables inside …Run Code Online (Sandbox Code Playgroud) angular ×2
foreign-keys ×1
hibernate ×1
java ×1
javascript ×1
modelmapper ×1
mysql ×1
rxjs ×1
rxjs5 ×1
spring ×1
spring-mvc ×1