![](/img/trans.png)
[英]How can I style links I loaded from a txt file with the jQuery load() method into my HTML?
[英]How can I chunk results (lazy load?) without rewriting my whole application (Laravel + jQuery, SPA style)
我已經開發了具有單頁應用程序概念的Web應用程序,但是沒有現代技術和框架。 因此,我有一個jQuery頁面,該頁面動態地向localhost請求數據-Laravel實例(在給定的時間間隔內)編譯數據庫中的條目。
因此,客戶希望查看上周的所有條目,該應用程序運行良好。 但是,如果他想查看整個上個月的結果……那么,它們是如此之多,以至於php的默認執行時間不足以處理所有數據(30秒)。 我當然可以輕松地覆蓋它,但是jQuery客戶端將遍歷這些對象數組並對其進行處理(排序,查找,求和...)。 因此,我什至不確定jQuery是否可以處理這么多數據。
所以我的問題可以分為兩部分:
可以使用laravel-> paginate()來使jQuery的ajax請求也可以對數據進行分塊嗎? 它是如何工作的(希望它不會強迫我重寫所有代碼)。
如何在客戶端上存儲大量信息? 這只是暫時的,但是用戶會在我的網頁上閑逛相當長的時間,我不希望他們每次按下按鈕都等待5分鍾
謝謝。
如果您想提供一個接口來存儲大量數據,則應該對數據進行分頁 。 這是一種標准方法,所以我確定您的客戶會接受的。
使用分頁非常簡單-請在此處查看Laravel 5.0的文檔: http ://laravel.com/docs/5.0/pagination
為了在后端對結果進行分頁,您需要在查詢中調用paginate($ perPage) ,而不是在控制器中調用get() ,如下所示:
$users = User::whereIsActive(true)->paginate(15);
這將返回分頁結果,每頁15條記錄。 頁碼將從請求的page參數中獲取。 為了獲得用戶的第三頁,您需要使用前端jQuery應用將請求發送至網址,例如:
/users?page=3
我不建議在前端應用程序中緩存數據。 數據可以由其他用戶更改,您甚至都不知道。 通過分頁,您的請求應該足夠輕巧,以免再擔心發送到獲取每一頁結果的請求。
不確定您是否訂閱了laracast,但是Jeffery Way在解釋Laravel的功能方面令人贊嘆,我強烈推薦他的視頻。
簡而言之,您可以對結果進行分頁,然后在視圖上調用項目的foreach時,可以array_chunk()結果顯示它們的顯示方式。 但是將使用URL中的查詢來獲取分頁的結果,如果您已經使用了大量的jQuery將所有內容都保留在同一頁面上,則我不確定這是您想要的。
https://laracasts.com/lessons/crazy-simple-pagination
但是假設您已經使用已經為json數據編寫的任何jQuery對結果進行分頁...
您還可以使用查詢范圍來獲取所需的數據,以達到創建一個簡單的api與ajax一起使用所需的時間。 我認為這可能就是您要尋找的。
因此,這是假設您已經使用JavaScript手動進行分頁的情況下所要做的。
有關查詢范圍的更多信息: http : //laravel.com/docs/5.1/eloquent#query-scopes
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.