Ich habe eine vb.net MVC3-Anwendung mit RAZOR Ansichten. Einige der Funktionen nehmen eine lange Zeit zu vervollständigen aufgrund der Tatsache, dass sie Daten aus der Datenbank kompiliert werden. Während dieser langen Wartezeit ist der Browser-Bildschirm weiß und es gibt keine Anzeichen dafür, dass es tut, was seine andere als die Aktivität Ring soll. Was ich tun möchte, ist eine Fortschrittsanzeige zu erstellen, einige einfache Mathematik auf die Zählung Methode verwenden, um den Fortschrittsbalken Prozent abgeschlossen zu bestimmen und zeigen diese auf dem Bildschirm anstelle der einfachen weißen Browser-Bildschirm. Ich bin sicher, dass ich dies mit einem Jquery-Widget einer Art tun müssen. Und haben alle über Google gesucht, aber nichts scheint zu treffen, was ich hier benötige. Die Controller-Funktion, die aufgerufen wird, wenn der weiße Bildschirm angezeigt wird, bis es beendet ist, ist unten:
Function beginArchive()
Dim cList As List(Of cours) = db.courses.ToList
For Each x In cList
Dim indCourse = x
Dim courHfile As String = archiveFiles(x.course_id)
Dim arcCourse As New archive
arcCourse.cDesc = indCourse.course_description
If Not String.IsNullOrEmpty(courHfile) Then
arcCourse.cHandouts = courHfile
End If
arcCourse.cHours = indCourse.course_hours
arcCourse.conNum = Convert.ToInt16(indCourse.courseNum)
arcCourse.cPre = indCourse.course_prefix
arcCourse.cRef = indCourse.course_ref
arcCourse.cSpeaker = indCourse.course_speaker
arcCourse.cTitle = indCourse.course_title
db.archives.AddObject(arcCourse)
db.SaveChanges()
Dim testSuccess As Integer = delOldFiles(indCourse.course_id)
Next
Return RedirectToAction("Index", "Admin")
End Function
Razor View ist dies:
@Code
ViewData("Title") = "Archive Previous Conf. Handouts"
End Code
<fieldset>
<h2>You are about to archive all handouts from last years conference. If you continue all of those handouts will be moved to the archive</h2>
<div id="sidebar3">
<p>
@Html.ActionLink("Begin Archive", "beginArchive","handoutArchive")
@Html.ActionLink("Back to Admin Tools", "Index", "Admin")
</p>
</div>
</fieldset>
Irgendwelche Ideen, wie ich über das Hinzufügen eines einfachen Fortschrittsbalken zu diesem gehen würde, die ich annehme, müsste durch den Controller selbst ausgelöst werden...