के साथ बड़े डेटासेट लोड हो रहा है मैं पेजिंग में बिना किसी पृष्ठ में बड़ी मात्रा में डेटा (1000 पंक्तियों के ऊपर) लोड करने का तरीका तैयार करने का प्रयास कर रहा हूं।AngularJS
: इस में पहली बाधा समानांतर काटने आकार विखंडू, जो मुझे लगता है मैं फिर भी क्या क्रियान्वित किया है साथ How to make sequentially Rest webservices calls with AngularJS?पर समाधान की मदद से किया गया है दो समस्याओं में मैं चल रहा हूँ में डीबी क्वेरी करने के लिए था
प्रत्येक लौटाया गया ऑब्जेक्ट एक सरणी में पारित किया जा रहा है जिसे तब स्वयं को उस सरणी के रूप में वापस कर दिया जाता है जो कोणीय बांधने के लिए उपयोग करता है। यानी [[{कुंजी: मान, कुंजी: मान, कुंजी: मान}, {कुंजी: मान, कुंजी: मान, कुंजी: मान}], [{कुंजी: मान, कुंजी: मान, कुंजी: मान}, {कुंजी: मान, कुंजी: मान, कुंजी: मान}]] जैसे कि मैं ng-repeat = "डेटा में आइटम" का उपयोग नहीं कर सकता क्योंकि डेटा सरणी की सरणी है। "डेटा में आइटम [0]" करना आइटम को उपलब्ध कराता है। Concatenation जवाब लगता है, लेकिन मैं इस तरह से काम करने में सक्षम नहीं है कि यह काम करता है।
मैं डेटाबेस में एकाधिक अनुरोध कर रहा हूं और प्रत्येक अनुरोध सही तरीके से वापस आ जाता है लेकिन पृष्ठ सभी अनुरोधों को पूरा नहीं होने तक प्रस्तुत नहीं करता है - जो पहले स्थान पर एकाधिक अनुरोध करने के बिंदु को पूरी तरह से अस्वीकार करता है।
तो मेरा कोड देखकर, मैं इन दो मुद्दों को हल करने के लिए इसे फिर से लिख सकता हूं? ताकि डेटा एक सरणी के रूप में वापस कर दिया गया हो और जब भी कोई प्रश्न पूरा हो जाए तो वह डेटा प्रस्तुत किया जाता है?
app.factory('ScanService', function($http, $q) {
function fetchOne(stepCount) {
return $http({
method: 'GET',
url: '/index.php/scans',
params: {step:stepCount}
})
.then(function onSuccess(response) {
return response.data;
}
return {
fetchAll: function(steps) {
var scans = [];
for (var i = 1; i <= steps; i++) {
scans.push(fetchOne(i));
}
return $q.all(scans);
}
};
});
app.controller.ScanCtrl = function($scope, $q, ScanService) {
$scope.scans = ScanService.fetchAll(10);
};
का पालन करें अप
मैं जोड़ने चाहिए कि मैं क्या जादू कर दिया करने के लिए मिल इस नीचे समाधान और एक angular.forEach के आधार पर काम कर रहे()। "बड़े डेटा" के साथ काम करने वाले किसी भी व्यक्ति को इस मार्ग पर जाने का सुझाव नहीं दे सकता। लगभग 1000 पंक्तियों में, ब्राउज़र बहुत अभिभूत था और काफी धीमा करना शुरू कर दिया। Angular.filter के साथ फ़िल्टर करने का प्रयास करने तक भी एक महत्वपूर्ण देरी का अनुभव हुआ जब तक कि परिणाम कम नहीं हो गए। दूसरी ओर, कुछ सौ पंक्तियों ने सम्मानपूर्वक अच्छी तरह से काम किया और देशी फ़िल्टरिंग की अनुमति दी - जो मेरे कार्यान्वयन के लिए एक महत्वपूर्ण लक्ष्य था।
कौन सा साईं दिमाग डेटा के हजारों पंक्तियों पर दिखना चाहता है? – Bart
@ बार्ट दुख की बात है कि मुझे यह भी करना है। कुछ व्यवसाय विश्लेषकों Excel डेटा के 1000 पंक्तियों के साथ काम कर रहे हैं और वेब पर एक समान दृश्य चाहते हैं। जबकि मैं पूरी तरह से उनसे असहमत हूं, कभी-कभी आपको क्लाइंट की इच्छा होती है :( – Terry
@ बार्ट जो 10 पंक्तियों के 100 पृष्ठों के माध्यम से क्लिक करना चाहता है? मुझे लगता है कि यह वास्तव में पेजिंग प्रतिमान और अनंत स्क्रॉलिंग के वैकल्पिक समाधान की तलाश में है मैं जिस समस्या का सामना कर रहा हूं उसे हल नहीं करता है। समग्र उद्देश्य यह है कि आप अपना डेटा लोड करते हैं और फिर इसे कोणीय के भीतर फ़िल्टर करते हैं, इसलिए आप जरूरी नहीं कि 1000 पंक्तियां देखें - लेकिन अगर आप पागल हो तो आप कर सकते हैं। – iamsar