我输入的离子页面非常慢。 一个4项选择有一个像800毫秒的延迟。当解除键盘时,一个白色的空白块在屏幕上停留500ms。
这个应用程序有大约10页的表格,但我的所有表格都很慢。请建议更好的方法来实现高性能表单。
看看这个示例代码。
示例代码:
<ion-content >
<div class="confirmform" style="padding:5px;">
<div class="confirmitem" *ngFor="let room of rooms; let i = index;">
<ion-item class="roomheader">
<ion-label>Room {{i+1}} Details</ion-label>
</ion-item>
<!-- item -->
<div class="adultitem" *ngFor="let adult of room.adults;let x = index">
<ion-item >
<ion-label>Adult {{x+1}}</ion-label>
</ion-item>
<ion-row>
<ion-col>
<ion-item style="padding-top:22px;">
<ion-select [(ngModel)]="adult.title" style="max-width: 100%;width:100%; padding-left: 2px;" interface="popover" placeholder="Title">
<ion-option value="Mr">Mr</ion-option>
<ion-option value="Ms">MS</ion-option>
<ion-option value="Miss">Miss</ion-option>
<ion-option value="Mrs">Mrs</ion-option>
</ion-select>
</ion-item>
</ion-col>
<ion-col>
<ion-item style="padding-top: 22px; border-bottom: 1px solid #dedede;" class="checkitem">
<ion-label>Lead Guest</ion-label>
<ion-checkbox color="dark" [(ngModel)]="adult.leadguest" tappable (click)="leadchecker(i,x)"></ion-checkbox>
</ion-item>
</ion-col>
</ion-row>
<ion-row>
<ion-col>
<ion-item>
<ion-label floating>First Name</ion-label>
<ion-input type="text" [(ngModel)]="adult.fname"></ion-input>
</ion-item>
</ion-col>
<ion-col>
<ion-item>
<ion-label floating>Last Name</ion-label>
<ion-input type="text" [(ngModel)]="adult.lname"></ion-input>
</ion-item>
</ion-col>
</ion-row>
</div>
<!-- children -->
<div class="adultitem" *ngFor="let child of room.children;let x = index">
<ion-item >
<ion-label>Children {{x+1}}</ion-label>
</ion-item>
<ion-row>
<ion-col>
<ion-item style="padding-top:22px;">
<ion-select [(ngModel)]="child.title" style="max-width: 100%;width:100%; padding-left: 2px;" interface="popover" placeholder="Title">
<ion-option value="Master">Master</ion-option>
<ion-option value="Miss">Miss</ion-option>
</ion-select>
</ion-item>
</ion-col>
</ion-row>
<ion-row>
<ion-col>
<ion-item>
<ion-label floating>First Name</ion-label>
<ion-input type="text" [(ngModel)]="child.fname"></ion-input>
</ion-item>
</ion-col>
<ion-col>
<ion-item>
<ion-label floating>Last Name</ion-label>
<ion-input type="text" [(ngModel)]="child.lname"></ion-input>
</ion-item>
</ion-col>
</ion-row>
</div>
<ion-row>
<ion-col col-9>
<p style="color:red;font-size: 12px;">Cancellation Policy :</p>
<p style="color:red;font-size: 12px;" *ngFor="let policy of cp[i]" [innerHTML]="policy"></p>
</ion-col>
<ion-col col-3>
<h2 style="color: #484343;font-size: 16px;">Cost {{currency}} {{room.total}}</h2>
</ion-col>
</ion-row>
</div>
<!-- contact section -->
<div class="confirmitem">
<ion-item class="roomheader">
<ion-label>Contact Info</ion-label>
</ion-item>
</div>
<ion-row>
<ion-col>
<ion-item style="padding-top:22px;">
<ion-label floating >Country </ion-label>
<ion-input [(ngModel)]="contact.country.country_name" (click)="opencountry()" ></ion-input>
</ion-item>
</ion-col>
</ion-row>
<ion-row>
<ion-col col-5>
<ion-item>
<ion-label floating>Country code</ion-label>
<ion-input type="text" [(ngModel)]="contact.countrycode" ></ion-input>
</ion-item>
</ion-col>
<ion-col>
<ion-item >
<ion-label floating>Mobile Number</ion-label>
<ion-input type="number" [(ngModel)]="contact.homephone" ></ion-input>
</ion-item>
</ion-col>
</ion-row>
<ion-row>
<ion-col >
<ion-item>
<ion-label floating>Email Address</ion-label>
<ion-input type="email" [(ngModel)]="contact.email"></ion-input>
</ion-item>
</ion-col>
<ion-col>
<ion-item >
<ion-label floating>Confirm Email</ion-label>
<ion-input type="email" [(ngModel)]="contact.email2" ></ion-input>
</ion-item>
</ion-col>
</ion-row>
<ion-row>
<ion-col>
<button ion-button color="primary" style="margin:0 auto;display:block" (click)="submitBooking()">Proceed to Booking</button>
</ion-col>
</ion-row>
</div>
</ion-content>
请建议我改善页面性能的方法。
答案 0 :(得分:0)
您可以根据以下建议改进网页效果:
删除所有inline styles
并将其放入相关网页的SCSS
文件或使用全局app.scss
文件。 Inline styles
不会缓存,也很难维护该应用。
使用CLIs
下方的<{p>>在真实设备上测试您应用的效果
ionic cordova build android --prod
ionic cordova build ios --prod