هل عند استخدام fetch للحصول على البيانات من قواعد البيانات, هل الافضل استدعيه كل مره اصل لنهاية الصفحة او استدعيه مرة واحدة؟
وكيف امنع api انه يعمل خارج موقعي؟
بالنسبة لتنفيذ ال pagination أو تنفيذ fetch عدة مرات يعتمد على حجم البيانات لديك والمتوقعة أيضاً . حيث في حالة البيانات الثابتة والصغيرة جداً مثل قائمة "أنواع الحسابات" (مستخدم، مدير، مشرف) هنا طلب واحد (Request) أفضل من عدة طلبات صغيرة.
ولكن تخيل أن لديك 10,000 منتج. جلبها كلها دفعة واحدة سيجعل المتصفح يتجمد لعدة ثوانٍ، وسيزيد الضغط على السيرفر وقاعدة البيانات ولذلك الأفضل هو استدعاء البيانات تدريجياً (كلما وصل المستخدم لنهاية الصفحة).
ثانياً بالنسبة لل API فيمكنك جعل الأمر صعباً جداً من خلال عدة خطوات أولها ضبط إعدادات CORS بحيث تقوم بضبط Access-Control-Allow-Origin ليكون رابط موقعك فقط بدلاً من *.
وتحتاج داخل الكود الخاص بك في السيرفر، التحقق من الـ Headers القادمة مع الطلب أن Referer أو Origin يأتي من نطاق موقعك (Domain) فإذا كان الطلب قادماً من مصدر مجهول أو مختلف، قم برفض الطلب (Return 403 Forbidden).
أيضاً يمكنك التأكد أن كل طلب يأتي من مستخدم مسجل دخوله. عن طريق استخدام JWT tokens أو Session cookies
التعليقات