أكثر

استخدام الاستعلام في حلقة متكررة يتسبب في تجميد تطبيق android

استخدام الاستعلام في حلقة متكررة يتسبب في تجميد تطبيق android


أواجه بعض المشاكل مع حلقة while + الاستعلام. ما أحاول القيام به هو تتبع موقع المستخدم (باستخدام onlocationChanged) والاستعلام عن ملفطبقة المميزاتحتى يقوم الاستعلام بإرجاع نتيجة ثم إيقاف حلقة while التي تستخدم قيمة منطقية. المشكلة بمجرد بدء تشغيل حلقة "while" هي أن التطبيق يتجمد ، وإليك الكود الخاص بي:

قيمة منطقية noResults = true while (noResults) {pointGeometry = MyPosition؛ // يقوم myPosition بتغيير قيمته في "onLocationChanged" باستخدام المستمع ، انظر الكود الموجود أسفل Graphic pointGraphic = رسومات جديدة (pointGeometry، simpleMarker)؛ SpatialReference spatialRef = MapFragment.mMapView.getSpatialReference () ، وحدة الوحدة = spatialRef.getUnit () ؛ دقة معدلة مزدوجة = b_dist ؛ المضلع p = GeometryEngine.buffer (نقطة القياس ، المكانية ، الدقة المعدلة ، الوحدة) ؛ الاستعلام q = استعلام جديد () ؛ q.setGeometry (p) ؛ q.setSpatialRelationship (SpatialRelationship.INTERSECTS) ؛ fLayer.selectFeatures (q، SELECTION_METHOD.NEW، callback4) ؛ } public void onLocationChanged (Location loc) {double locy = loc.getLatitude ()؛ مزدوج locx = loc.getLongitude () ؛ Point wgspoint = نقطة جديدة (locx ، locy) ؛ mLocation = (Point) GeometryEngine.project (wgspoint، SpatialReference.create (4326)، mMapView.getSpatialReference ()) ؛ // هنا حيث تغير موقعي من قيمته. موقعي = mLocation ؛ } CallbackListener callback4 = جديد CallbackListener() {public void onCallback (FeatureSet fSet) {Graphic [] grh = fSet.getGraphics ()؛ إذا (grh.length> 0) {noResults = false ؛ showTaost ("هناك نتيجة") ؛ }}) ؛

هل هناك بديل لحلقة while لإصلاح ذلك؟ إذا لم يكن الأمر كذلك ، كيف يمكنني استخدام شيء مثل التأخير (الاستعلام عن طبقة الميزة كل 5 ثوانٍ أو شيء من هذا القبيل)؟


لقد قمت بحل المشكلة باستخدام "معالج" يقوم بالاستعلام عن طبقة الميزة كل 5 ثوانٍ ، وهذا يمنع الخيط الرئيسي من إنشاء التطبيق لا يستجيب للخطأ:

المعالج m_handler = new Handler () ؛ تشغيل m_runnable ؛ m_runnable = new Runnable () {public void run () {// رمز الاستعلام هنا m_handler.postDelayed (m_runnable، 5000)؛ }}؛ m_handler.postDelayed (m_runnable، 0) ؛

استعلام SQL في حالة & ldquoExecution & rdquo ويستمر في العمل

أحاول تشغيل استعلام بسيط في SQL 2102 select count (*) من cab_details ، لكنه يستمر في التنفيذ.

إذا قمت بإعادة تشغيل خدمة SQL ، فستظهر النتيجة في ثانية واحدة فقط. (العدد حوالي 250000 - ليست قيمة أكبر)

بعد 10 دقائق ، إذا حاولت تنفيذ نفس الاستعلام - مرة أخرى يستمر في التنفيذ.

كنت أرغب في إعادة تشغيل خدمة SQL كل 10 دقائق للحصول على النتيجة.


تصميم أدوات الإكمال التلقائي و SearchBox

بشكل افتراضي ، تم تصميم عناصر واجهة المستخدم التي يوفرها الإكمال التلقائي و SearchBox لتضمينها على خريطة Google. قد ترغب في تعديل التصميم ليناسب موقعك الخاص. فئات CSS التالية متاحة. تنطبق جميع الفئات المدرجة أدناه على كل من أدوات الإكمال التلقائي و SearchBox.

فئات CSS لأدوات الإكمال التلقائي و SearchBox

فئة CSS وصف
حاوية باك العنصر المرئي الذي يحتوي على قائمة التنبؤات التي تم إرجاعها بواسطة خدمة الإكمال التلقائي للمكان. تظهر هذه القائمة كقائمة منسدلة أسفل أداة الإكمال التلقائي أو أداة SearchBox.
pac-icon يتم عرض الرمز على يسار كل عنصر في قائمة التوقعات.
pac-item عنصر في قائمة التنبؤات التي تم توفيرها بواسطة عنصر واجهة المستخدم "الإكمال التلقائي" أو "مربع البحث".
pac-item: hover العنصر عندما يقوم المستخدم بتمرير مؤشر الماوس فوقه.
pac-item-selected العنصر عندما يختاره المستخدم عبر لوحة المفاتيح. ملاحظة: ستكون العناصر المحددة عضوًا في هذا الفصل وفي فئة pac-item.
الاستعلام عن عنصر pac فترة داخل عنصر pac يمثل الجزء الرئيسي من التنبؤ. بالنسبة إلى المواقع الجغرافية ، يحتوي هذا على اسم مكان ، مثل "سيدني" ، أو اسم الشارع ورقمه ، مثل "10 King Street". بالنسبة لعمليات البحث المستندة إلى النص مثل "بيتزا في نيويورك" ، فإنها تحتوي على النص الكامل للاستعلام. بشكل افتراضي ، يكون استعلام عنصر pac ملونًا باللون الأسود. إذا كان هناك أي نص إضافي في عنصر pac ، فسيكون خارج استعلام عنصر pac ويرث تصميمه من عنصر pac. يكون لونه رمادي بشكل افتراضي. النص الإضافي هو عادة عنوان.
مطابقة pac الجزء من التوقع الذي تم إرجاعه والذي يتطابق مع مدخلات المستخدم. بشكل افتراضي ، يتم تمييز هذا النص المطابق بنص غامق. لاحظ أن النص المطابق قد يكون في أي مكان داخل عنصر pac. ليس بالضرورة جزءًا من استعلام عنصر pac ، ويمكن أن يكون جزئيًا ضمن استعلام عنصر pac وكذلك جزئيًا في النص المتبقي في pac-item.


تحديث قائمة SharePoint عبر استعلام Access ورمز VBA يستنفد موارد النظام

اعتذاري: لقد سألت هذا على StackOverflow بالفعل ولكن لم أتلق أي ردود. آمل أن تؤدي إعادة النشر على موقع أكثر توجهاً إلى SharePoint إلى مزيد من التبصر.

لأسباب خارجة عن إرادتي ، نستخدم Access 2010 لتحديث قوائم SharePoint المرتبطة لإبقائها متزامنة مع CMDB (نحن نستخدم SharePoint 2010 أيضًا). نحصل على تقارير من CMDB بتنسيق CSV ، ونربطها بـ Access أيضًا. نستخدم بعد ذلك مجموعة من Access VBA والاستعلامات المحددة مسبقًا لإضافة بيانات جديدة أو تحديث البيانات الموجودة أو حذفها بسهولة. قائمة واحدة على وجه الخصوص تسبب المشاكل. على وجه التحديد ، يبدو أن عمليات الإدراج / الحذف الناعم تعمل ، لكن Access يستنفد الموارد ويتعطل عند تشغيل استعلام التحديث. يُظهر سحب شاشة المورد أن استخدام الذاكرة يزداد باستمرار أثناء تشغيل التطبيق ، ويفشل Access أخيرًا عندما

تم تخصيص 1.6 جيجا بايت أو ذاكرة وصول عشوائي (RAM) لها (على جهاز 4 جيجا بايت مع ملف مبادلة 6 جيجا بايت ، Windows 7 64 بت ، ولكن 32 بت الوصول).

أستخدم استعلامين بالإضافة إلى رمز VBA. يسترد أحد الاستعلامات مجموعة نتائج تسمح لي بتحديد أي صف في قائمة SharePoint سيتم تحديثه (إن وجد) ، بينما يحدد الآخر أي الأعمدة من التقرير تقوم بتحديث الأعمدة المقابلة في قائمة SharePoint ، وشرط الربط بين التقرير المرتبط والقائمة المقابلة ، والصف في SP المراد تحديثه ، محددًا بواسطة مفتاحه المركب. ثم أقوم بالتكرار على مجموعة النتائج الأولى ، متوقفًا مؤقتًا لمدة ثانية واحدة بين كل صف ، وتطبيق المعلمات المناسبة على استعلام التحديث. أشياء عادية إلى حد ما ، على ما أعتقد.

يتعين علينا استخدام هذا الأسلوب (أو أسلوب مشابه إلى حد كبير) نظرًا لحقيقة أن قائمة SharePoint لها مهام سير عمل مرتبطة. وجدنا أنه إذا كتبنا SQL الخاص بنا لإجراء تحديثات قياسية من نوع المجموعة ، فقد حدثت التحديثات بسرعة كبيرة ، مما أدى إلى زيادة التحميل على محرك سير العمل في Sharepoint وتسبب في فشل سير العمل ، وبالتالي الحاجة إلى التأخير 0.1 ثانية ضمن حلقة VBA.

ملاحظة: لا أتلقى أي تلميح عن أي مشكلة أو خطأ حتى النقطة التي يتعطل فيها Access ، ويتم تحديث SharePoint - مرة أخرى حتى يتعطل Access بسبب استنفاد موارد النظام.


كيفية التعامل مع اتصالات قاعدة البيانات في وحدة مكتبة Python

لقد قمت بإنشاء مكتبة في Python تحتوي على وظائف للوصول إلى قاعدة بيانات. هذه مكتبة مجمعة حول قاعدة بيانات تطبيقات تابعة لجهة خارجية ، تمت كتابتها نظرًا لحقيقة أن تطبيق الطرف الثالث لا يوفر واجهة برمجة تطبيقات مناسبة. الآن أترك في الأصل لكل وظيفة فتح اتصال قاعدة البيانات طوال مدة استدعاء الوظيفة التي كانت على ما يرام ، حتى استخدم منطق البرنامج الخاص بي استدعاءات متداخلة للوظائف حيث كنت سأقوم بعد ذلك باستدعاء وظيفة معينة عدة آلاف من المرات. لم يكن هذا أداءً جيدًا. أظهر التنميط أن الحمل كان في إعداد اتصال قاعدة البيانات - مرة واحدة لكل استدعاء وظيفة. لذلك قمت بنقل الاتصال المفتوح من داخل الوظيفة (الوظائف) إلى الوحدة نفسها ، بحيث يتم فتح اتصال قاعدة البيانات عند استيراد وحدة المكتبة. هذا أعطاني أداء مقبول.

الآن لدي سؤالان بخصوص هذا. أولاً ، هل يجب أن أشعر بالقلق لأنني لم أعد أقوم بإغلاق اتصال قاعدة البيانات بشكل صريح وكيف يمكنني القيام بذلك بشكل صريح مع هذا الإعداد؟ ثانيًا ، هل ما فعلته قريب من مجال الممارسة الجيدة وكيف يمكنني التعامل مع هذا بطريقة أخرى؟


إذا قمت بإنشاء واحد لكل استعلام / معاملة ، فسيكون من الأسهل بكثير إدارة "إغلاق" الاتصالات.

أستطيع أن أفهم لماذا يملي الفطرة السليمة أنه يجب عليك فتح واحدة واستخدامها طوال الوقت ، لكنك ستواجه مشاكل في الاتصالات المقطوعة وتعدد مؤشرات الترابط. لذلك ستكون خطوتك التالية هي فتح حوض سباحة ، على سبيل المثال 50 ، اتصالًا وإبقائها مفتوحة ، وتوزيعها على عمليات مختلفة. وبعد ذلك ستكتشف أن هذا هو بالضبط ما يفعله .NET framework لك بالفعل.

إذا فتحت اتصالاً عندما تحتاج إليه وتخلصت منه عند الانتهاء ، فلن يؤدي ذلك في الواقع إلى إغلاق الاتصال ، بل سيعيده فقط إلى مجموعة الاتصال لاستخدامه مرة أخرى.

أفضل ممارسة لإنشاء اتصال واحد لكل استعلام - وفي حالة عرض البيانات ، تتمثل أفضل الممارسات في إحضار الاستعلام الكل البيانات المطلوبة دفعة واحدة.

في .NET ، سيؤدي استدعاء SqlConnection.Open () افتراضيًا دائمًا بشفافية استخدام تجمع الاتصالات (راجع "استخدام تجميع الاتصال مع SQL Server" على MSDN). لذا يمكنك فقط الحصول على اتصال جديد باستخدام Open () ، واستدعاء Close () عند الانتهاء ، وسيقوم .NET بعمل الشيء الصحيح.

لاحظ أنه بدون تجميع الاتصال ، سيكون اتصال واحد لكل استعلام فكرة سيئة للغاية لأن إنشاء اتصالات قاعدة بيانات حقيقية يمكن أن يكون مكلفًا للغاية (المصادقة ، عبء الشبكة وما إلى ذلك) ، وعادة ما يكون عدد الاتصالات المفتوحة المتزامنة محدودًا للغاية.

يرغب المطورون أحيانًا في "تحسين" التعليمات البرمجية الخاصة بهم لإعادة استخدام كائنات الاتصال الخاصة بهم. نظرًا لسياق هذا السؤال الذي يضعنا في النظام البيئي .Net ، فإن هذا غالبًا ما يكون خطأ. (ملاحظة: العديد من المنصات الأخرى تتعامل مع هذا بطرق مماثلة أيضًا).

يحتوي ADO.Net على ميزة تسمى تجمع الاتصال. عند إنشاء كائن اتصال جديد وفتحه ، فإن ما تفعله حقًا هو طلب اتصال من مجموعة. عندما تغلق اتصالاً ، فإنك تعيده إلى التجمع.

من المهم أن نفهم العناصر التي نستخدمها مباشرة في الكود: SqlConnection ، MySqlConnection ، OleDbConnection ، إلخ ، كلها فقط أغلفة حول اتصال أساسي حقيقي تديره ADO.Net. اتصالات ADO.Net الحقيقية "أثقل" بكثير وأكثر تكلفة من وجهة نظر الأداء. هذه الكائنات الأساسية لديها مخاوف مثل المصادقة ، ونقل الشبكة ، والتشفير ، وما إلى ذلك ، و هذه الأشياء تفوق بكثير المقدار الصغير من الذاكرة في الكائن الذي تراه بالفعل في التعليمات البرمجية الخاصة بك.

عندما تحاول إعادة استخدام كائن الاتصال الخاص بك ، فإنك تكتسب كفاءة في الشيء الصغير على حساب الشيء الأكبر بكثير ، لأنك تعطّل قدرة تجمع اتصال ADO.Net على إدارة الاتصالات الأساسية الهامة بفعالية.

يمكن أن تجبرك إعادة استخدام اتصال عبر تطبيق أو طلب http أيضًا على إجراء تسلسل غير مقصود للعمليات التي قد تكون قادرة على التشغيل بشكل غير متزامن ، وتصبح عقبة في الأداء. لقد رأيت هذا يحدث في تطبيقات حقيقية.

في حالة مثال صفحة الويب هنا ، حيث تحتفظ على الأقل بالاتصال الصغير فقط لمدة طلب / استجابة http واحد ، يمكنك الحصول على مزيد من الكفاءة من خلال تقييم الاستعلامات التي تقوم بتشغيلها في مسار الطلب الخاص بك ، ومحاولة الحصول على وصولاً إلى أقل عدد ممكن من الطلبات المنفصلة إلى قاعدة البيانات (تلميح: يمكنك إرسال أكثر من استعلام واحد في سلسلة SQL واحدة ، واستخدام DataReader.NextResult () أو التحقق من جداول مختلفة في DataSet للتنقل بينها).

بمعنى آخر ، بدلاً من التفكير في تقليل عدد كائنات الاتصال التي تقوم بإنشائها (عن طريق إعادة استخدام اتصال واحد لتطبيق أو طلب http) ، فكر في اتصال واحد لكل مرة تتصل فيها بقاعدة البيانات. كل رحلة ذهابا وإيابا. ثم حاول تقليل عدد الاتصالات عن طريق تقليل عدد تلك الرحلات. بهذه الطريقة يمكنك تحقيق كلا الهدفين.

لكن هذا مجرد نوع واحد من التحسين. هناك أيضًا تحسين لوقت المبرمج واكتساب إعادة استخدام فعالة للشفرة. لا يرغب المطورون في كتابة نفس الكود المعياري مرارًا وتكرارًا لمجرد الحصول على كائن اتصال مفتوح وجاهز للاستخدام. إنها ليست مملة فحسب ، إنها طريقة لإدخال الأخطاء في البرنامج.

حتى هنا ، لا يزال من الأفضل بشكل عام أن يكون لديك اتصال واحد لكل استعلام (أو ذهابًا وإيابًا). هناك أنماط يمكنك استخدامها للمساعدة في تجنب إعادة كتابة نفس التعليمات البرمجية المعيارية ، مع الحفاظ على هدف اتصال واحد لكل مكالمة إلى قاعدة البيانات. هذا مثال أحبه ، لكن هناك العديد من الأمثلة الأخرى.


فكر في كائن فضائي يستفسر عن نظامنا الشمسي

أجنبي: كمبيوتر ، من فضلك قل لي كل الكواكب التي يسكنها البشر.

كمبيوتر: تم العثور على 1 نتيجة. أرض

أجنبي: الكمبيوتر ، من فضلك أخبرني عنه أرض.

الكمبيوتر: الأرض - غير ضارة في الغالب.

أجنبي: كمبيوتر ، من فضلك أخبرني عن جميع الكواكب التي يسكنها البشر ، خارج حزام الكويكبات.

أجنبي: الكمبيوتر ، يرجى تدمير الأرض.

أجنبي: الكمبيوتر ، من فضلك أخبرني عنه أرض.

أجنبي: كمبيوتر ، من فضلك قل لي كل الكواكب التي يسكنها البشر.

أجنبي: انتصار إمبراطورية إيركن العظيمة!

تجاهل حقيقة أن / GoalTree / Get * يبدو وكأنه فعل وليس موارد ، يجب عليك دائمًا إرجاع 200 لأن URI / GoalTree / Get * يمثل الموارد المتاحة دائمًا للوصول وليس خطأ العميل إذا لم تكن هناك شجرة نتيجة لذلك طلب. ما عليك سوى إرجاع 200 بمجموعة فارغة عندما لا يكون هناك كيان يمكن إرجاعه.

يمكنك استخدام 404 إذا لم يتم العثور على المورد ، وليس في حالة عدم وجود كيان.

ضعها بطريقة أخرى ، إذا كنت تريد إرجاع 404 للعناصر الخاصة بك ، فامنحهم عناوين URI الخاصة بهم.

هذا سؤال مثير للاهتمام ، لأن الأمر كله يتعلق بمواصفات النظام.

لقد أقنعني رد imel96 أن 404 لن يكون استجابة مناسبة ، نظرًا لأن عائلة الرموز 4xx مخصصة بشكل أساسي أخطاء المستخدم / العميل، وهذه ليست واحدة. عنوان URL منسق جيدًا ويجب أن تكون الشجرة موجودة إذا لم يكن كذلك ، فإن النظام في حالة غير متسقة!

لذلك هذا هو ملف الخادم خطأ ، أي شيء في عائلة 5xx. من المحتمل أن يكون خطأ خادم داخلي عام 500 أو خدمة 503 غير متوفرة (الخدمة "تجلب لي الشجرة التي يجب أن تكون هناك").

أود أن أقول أن يمكن أن يكون رمز الاستجابة 200 أو 404 صالحًا، اعتمادًا على الطريقة التي تنظر بها إلى الموقف.

الشيء هو أن أكواد استجابة HTTP يتم تعريفها في سياق ملف الخادم، والتي يمكن أن تقدم مختلف مصادر بناءً على عنوان URL الخاص بهم. في هذا السياق ، فإن معاني 200 OK و 404 Not Found لا لبس فيها تمامًا: الأول يقول "هذا هو المورد الذي طلبته" ، بينما يقول الأخير "آسف ، ليس لدي أي مورد من هذا القبيل".

ومع ذلك ، في حالتك ، لديك ملف طلب طبقة بين خادم HTTP والموارد الفعلية (الأشجار) التي يتم طلبها. يشغل التطبيق نوعًا من مساحة وسيطة لم يتم تناولها بشكل جيد في مواصفات HTTP.

من وجهة نظر خادم الويب ، يبدو التطبيق نوع من مثل مورد: عادةً ما يكون ملفًا على الخادم ، يتم تحديده بواسطة (جزء من) عنوان URL ، تمامًا مثل الموارد الأخرى (مثل الملفات الثابتة) التي قد يخدمها الخادم. من ناحية أخرى ، إنه نوع غريب من الموارد ، لأنه يتكون من كود قابل للتنفيذ يحدد بشكل ديناميكي المحتوى ، وربما حتى رمز الحالة ، للاستجابة ، مما يجعله يتصرف بطريقة ما مثل خادم صغير.

على وجه الخصوص ، في حالتك المثال ، يمكن لخادم الويب تحديد موقع التطبيق بشكل جيد ، لكن التطبيق يفشل بعد ذلك في تحديد موقع مصدر فرعي (شجرة) تم طلبه. الآن ، إذا كنت تعتبر التطبيق عادلاً امتدادا للخادم، والعنصر الفرعي (الشجرة) ليكون المورد الفعلي ، ثم أ استجابة 404 مناسب: لقد قام الخادم فقط بتفويض مهمة العثور على المورد الفعلي للتطبيق ، والذي فشل بدوره في القيام بذلك.

من ناحية أخرى ، إذا كانت وجهة نظرك هي ذلك التطبيق هو المورد عند الطلب ، فمن الواضح أن خادم الويب يجب أن يعيد ملف 200 استجابة بعد كل شيء ، تم العثور على التطبيق وتم تنفيذه بشكل صحيح. من الواضح ، في هذه الحالة ، أن التطبيق يجب أن يُرجع فعليًا نص استجابة صالحًا بالتنسيق المتوقع ، مشيرًا (باستخدام أي بروتوكول عالي المستوى يشفره التنسيق) إلى عدم العثور على بيانات فعلية تطابق الاستعلام.

كل من وجهتي النظر هذه يمكن أن يكون له معنى. في معظم الحالات، على الأقل للتطبيقات التي يُراد الوصول إليها مباشرة عبر HTTP باستخدام متصفح ويب عادي ، أنا أفضل وجهة النظر السابقة: لا يهتم المستخدم عمومًا بالتفاصيل الداخلية مثل الاختلاف بين الخادم والتطبيق ، فهم يهتمون فقط بما إذا كانت البيانات التي يريدونها موجودة أم لا.

ومع ذلك ، في الحالة المحددة للتطبيق المصمم للتواصل مع برامج الكمبيوتر الأخرى باستخدام بروتوكول API مخصص عالي المستوى ، باستخدام HTTP فقط كطبقة نقل منخفضة المستوى، هناك حجة في صالح الرأي الأخير: بالنسبة للعملاء الذين يتعاملون مع مثل هذا التطبيق ، كل ما يهتمون به حقًا ، على مستوى HTTP، هل تمكنوا من الاتصال بالتطبيق بنجاح أم لا. كل شيء آخر ، في مثل هذه الحالات ، غالبًا ما يتم توصيله بشكل طبيعي باستخدام بروتوكول المستوى الأعلى.

على أي حال ، بغض النظر عن أي من العروض المذكورة أعلاه تفضله ، هناك بعض التفاصيل التي يجب أن تضعها في اعتبارك. أحدهما هو أنه ، في كثير من الحالات ، قد يكون هناك تمييز ذو مغزى بين (بشكل أساسي) فارغة الموارد وأ غير موجود واحد.

على مستوى HTTP ، يمكن ببساطة الإشارة إلى المورد الفارغ بواسطة رمز استجابة 200 ونص استجابة فارغ ، في حين تتم الإشارة إلى المورد غير الموجود من خلال استجابة 404 وهيئة الموارد التي تشرح غياب المورد. في بروتوكول API عالي المستوى ، يشير المرء عادةً إلى مورد غير موجود من خلال استجابة خطأ ، يحتوي على رمز / رسالة خطأ بروتوكول مناسب ، في حين أن الاستجابة الفارغة ستكون ببساطة بنية استجابة عادية بدون عناصر بيانات.

(لاحظ أن المورد لا يلزم أن يكون طوله صفر بايت حرفيًا ليكون "فارغًا" بالمعنى الذي أعنيه أعلاه. على سبيل المثال ، نتيجة البحث التي لا تحتوي على عناصر مطابقة يمكن اعتبارها فارغة بالمعنى الواسع ، كما هو الحال بالنسبة لنتائج استعلام SQL مع لا توجد صفوف أو مستند XML لا يحتوي على بيانات فعلية.)

أيضًا ، بالطبع ، إذا كان التطبيق يعتقد حقًا أن المصدر الفرعي المطلوب ينبغي كن هناك ، لكن لا يمكنك العثور عليه ، ثم يوجد رمز استجابة ثالث محتمل: 500 خطأ خادم داخلي. تكون هذه الاستجابة منطقية إذا كان وجود المورد شرطًا مسبقًا مفترضًا للتطبيق ، بحيث يشير غيابه بالضرورة إلى وجود خلل داخلي.

أخيرًا ، يجب عليك ذلك دائما ضع في اعتبارك قانون Postel:

"كن محافظًا في ما ترسله ، وليبراليًا فيما تتلقاه."

سواء كان الخادم ينبغي الرد في حالة معينة مع استجابة 200 أو 404 ، هذا لا يبرر أنت مثل زبون المنفذ من التعامل مع أي رد بشكل مناسب وبالطريقة التي تزيد من قابلية التشغيل البيني القوية. بالطبع ، يمكن مناقشة ما تعنيه المعالجة "المناسبة" في المواقف المختلفة ، ولكن بالتأكيد لا ينبغي أن تتضمن عادةً الاصطدام أو "الانهيار".


كيفية إصلاح مشكلة استمرار تحطم Excel؟

قم بإلقاء نظرة سريعة على الإصلاحات التي سنستخدمها لإصلاحها بسهولة يستمر Excel في الانهيار مشكلة:

دع & # 8217s تعرف كيفية تطبيق كل من هذه الحلول.

الإصلاح 1: إزالة وظائف COM الإضافية

وظائف COM الإضافية سيئة للغاية وهذا يسبب العديد من المشكلات في ملف Excel ، لذا فإن الأفضل هو تعطيلها.

تقاتل وظائف COM الإضافية على الذاكرة وتتسبب في تجميد Excel وتعطل المشكلات.

لذلك ، الأفضل هو تعطيل وظائف COM الإضافية ، اتبع الخطوات للقيام بذلك:

  • إختر ملف ثم اذهب الى خيارات و الوظائف الإضافية.
  • ثم في الجزء السفلي من مربع الحوار & GT تعديل ملف إدارة القائمة المنسدلة ل وظائف COM الإضافية و GT إختر اذهب.

  • بعد ذلك قم بإلغاء تحديد خانة الاختيار للممكّن وظائف COM الإضافية & GT انقر نعم.

نأمل تعطيل تعمل وظائف COM الإضافية على إصلاح تعطل Excel مسائل. ولكن إذا لم يكن الأمر كذلك ، فاتبع الحل الثاني:

الإصلاح 2: إزالة الرسوم المتحركة Microsoft Excel

من بين عدة أسباب Excel تحطم قضية الرسوم المتحركة هي أيضًا أحد الأسباب الشائعة جدًا.

الرسوم المتحركة في Excel تلقائيًا تشغيل ووجد أنه يتسبب في العديد من المشكلات ، وهذا عادة ما يجعل أداء Excel بطيئًا وحتى يتعطل.

لذا فإن الأفضل هو الالتفاف إيقاف الرسوم المتحركة.

اتبع الخطوات لإيقاف تشغيل الرسوم المتحركة في Excel:

  • يختار خيارات ملف & GT.
  • اضغط على متقدم علامة التبويب وإلغاء تحديد & # 8216 تعطيل تسريع رسومات الأجهزة & # 8217 اختيار.

ساعد هذا بعض المستخدمين على إصلاح يستمر Excel في الانهيار مشكلة.

الإصلاح 3: استكشاف تفاصيل ملف Excel ومحتوياته

توجد ملفات Excel لفترة طويلة في الكمبيوتر ويتم ترقيتها من إصدار إلى آخر.

ينتقل هذا غالبًا بين المستخدمين ، ويتولى المستخدمون ملف Excel ولكنهم لا يعرفون ما هو مضمن فيه.

أدناه هي المناطق التي تسبب يحتفظ Excel بالتجميد مثل القضايا:

  • الصيغ التي تشير إلى أعمدة بأكملها.
  • أكثر من الآلاف من الكائنات المخفية أو ذات الطول والعرض 0
  • صيغ الصفيف التي تشير إلى عدد غير متساو من العناصر في الوسيطات.
  • أنماط غير ضرورية ناتجة عن النسخ واللصق المنتظم بين المصنفات.
  • أسماء معرّفة غير صالحة وغير ضرورية

تحقق من المناطق لمعرفة السبب مصنف Excel يبقي تحطمها أو لا تستجيب للقضايا.

الإصلاح 4: قم بتشغيل Excel في الوضع الآمن

يمكّن الوضع الآمن المستخدمين من استخدام Excel بأمان دون أي مشاكل شائعة في برامج بدء التشغيل.

لذا ، فإن الأفضل هو المحاولة مرة واحدة لبدء تشغيل Excel في الوضع الآمن.

  • اضغط مع الاستمرار كنترول عند بدء تشغيل البرنامج أو باستخدام ملف خيار & # 8220 / safe & # 8221 (excel.exe / safe) أثناء بدء تشغيل البرنامج من سطر الأوامر.

  • الآن أثناء تشغيل Excel في الوضع الآمن ، يتجنب هذا الوظائف والإعدادات مثل موقع بدء التشغيل البديل ،تتغير أشرطة الأدوات ومجلد xlstart وحتى وظائف Excel الإضافية.

نأمل من خلال بدء تشغيل Excel في الوضع الآمن ، تم إصلاح مشكلة تعطل Excel ، ولكن إذا لم يكن الأمر كذلك ، فمن المستحسن استخدام الأداة المساعدة التلقائية لإصلاح MS Excel ، لإصلاح مشكلات Excel والأخطاء والفساد وغيرها.

الإصلاح 5: إعادة تثبيت وإصلاح MS Office

في معظم الأوقات ، يُرى أن إصلاح مجموعة برامج MS Office يعمل على إصلاح مشكلة تعطل Excel. بشكل أساسي عندما تكون المشكلة ناتجة عن تلف برنامج Excel أو ملف MS office.

جرب الخطوات التالية لتنفيذ هذه الطريقة:

  • قم بالنقر بزر الماوس الأيمن فوق "بداية"واختر ملف لوحة التحكم.
  • اتبع المسار "البرامج"& GT "البرنامج وميزات أمبير“.
  • ابحث في "مايكروسوفت أوفيس"في القائمة. بمجرد الحصول عليها ، انقر بزر الماوس الأيمن فوق الرمز واختر "يتغيرون" اختيار.

  • بعد انتهاء عملية الإصلاح. قم بتشغيل تطبيق excel مرة أخرى للتحقق مما إذا كانت مشكلة تعطل مصنف Excel قد تم حلها أم لا.
  • إذا استمرت المشكلة ، فانتقل فورًا إلى "الإصلاح عبر الإنترنت" اختيار.

الإصلاح 6: يتجمد Excel في جدول بيانات واحد فقط

إذا كنت تواجه مشكلة تعطل Excel هذه فقط في جدول بيانات Excel معين. ثم تكون هناك احتمالية كبيرة لوجود مشكلة في التنسيق الشرطي في ملفك.

لذلك لحلها ، اتبع الخطوات الموضحة أدناه:

  • افتح ملف Excel الإشكالي.
  • بعد ذلك انتقل إلى "منزل، بيت"& gt"تنسيق مشروط"& gt"قواعد واضحة"& gt"مسح القواعد من الورقة بأكملها“.

  • يمكنك تطبيق الخطوات المذكورة أعلاه في أي من جداول بيانات Excel الخاصة بك.
  • اختر ال "ملف"& gt"حفظ باسم" اختيار. سيؤدي هذا إلى إنشاء نسخة جديدة من جدول بيانات Excel. عيّن اسمًا مختلفًا لهذا الملف الجديد حتى لا يتم استبداله بالملف القديم. القديم سيكون موجودًا إذا كنت بحاجة إلى العودة إليه بسبب فقدان البيانات.

الإصلاح 7: تحقق من البرامج أو العمليات المتعارضة

في وقت تمهيد Windows ، تبدأ العديد من العمليات تلقائيًا في التنفيذ في الخلفية. لذا من المحتمل أيضًا أن تتعارض هذه البرامج مع تطبيق Excel الخاص بك.

يمكنك إما إجراء تمهيد نظيف أو بدء تشغيل انتقائي لإيقاف التطبيق المتضارب. فيما يلي الخطوات الموضحة لأداء هذه المهمة.

  • في جهاز الكمبيوتر الخاص بك تسجيل الدخول باسم مدير.
  • اضغط على مفاتيح + X من لوحة المفاتيح.
  • اختر ال يركض الخيار وفي النافذة المفتوحة اكتب ملف مسكونفيغ.

  • بعد هذا سترى مربع حوار تكوين النظام يظهر المربع مفتوحًا على شاشتك.
  • اذهب الآن إلى علامة التبويب الخدمات، ووضع علامة اختيار عبر الخيار اخفي كل خدمات مايكروسوفت.
  • حدد ملف أوقف عمل الكل& gt تطبيق & gtOK اختيار.

  • في مربع الحوار المفتوح لـ مدير المهام، اضغط على أبدء التبويب. الآن قم بالنقر بزر الماوس الأيمن فوق العنصر الذي تريد تعطيله واختر ملف إبطال.

  • أقفل ال مدير المهام.
  • على ال علامة تبويب بدء التشغيل موجودة في أعدادات النظام من مربع الحوار. اضغط على خيار موافق وأعد تشغيل الكمبيوتر.

التكرار من خلال قائمة وعناصر SharePoint باستخدام PowerShell

أحاول التكرار على قائمة وعرض الخصائص على بعض العناصر التي تعيش ضمن تلك القائمة ، وعلى مستوى واحد أو مستويين على خادم SharePoint 2010. لقد تمكنت حتى الآن من الاتصال بالموقع والتكرار عبر المجلدات والعناصر في المستوى الأعلى ، ولكن ما أريده هو أن أكون قادرًا على تكرار العناصر داخل المجلدات. الهيكل الخارجي هو كما يلي:

site - http: // localhost / my_site list - مجلد الصفحات - News ItemB - Article ItemA - Contents

الموقع سهل بما يكفي للاتصال به ، حيث يمكنني الحصول على القائمة والمجلدات والعناصر وإخراجها حتى أتمكن من رؤية ما يعيش هناك. ما أريده هو أن أكون قادرًا على عرض جميع عناصر العنصر (وقد يكون هناك الكثير منها) تحت كل مجلد ، وهناك حوالي 10 مجلدات في القائمة مع كل مجلد يحتوي على الكثير من العناصر.

ما هي أسهل طريقة لتتمكن من العثور على المجلد ثم البحث تحت المجلد وعرض جميع عناصره؟ تجربتي مع PowerShell و SharePoint في هذا الصدد محدودة نوعًا ما. هي موضع تقدير أي مؤشرات مفيدة.

إليكم ما لدي حتى الآن ، أود الحصول على الجزء الذي يخرج المحتوى لملاحظة العناصر.


فهم الأساسيات

ما هو C #؟

C # هي واحدة من عدة لغات برمجة تستهدف Microsoft CLR ، والتي تمنحها تلقائيًا مزايا التكامل عبر اللغات ومعالجة الاستثناءات ، والأمان المحسن ، ونموذج مبسط للتفاعل بين المكونات ، وخدمات التصحيح والتنميط.

ما هو الفرق بين C ++ و C #؟

C ++ و C # لغتان مختلفتان تمامًا ، على الرغم من أوجه التشابه في الاسم وبناء الجملة. تم تصميم C # ليكون أعلى إلى حد ما من C ++ ، وتتخذ اللغتان أيضًا مناهج مختلفة لتفاصيل مثل من يحدد ما إذا كانت المعلمة يتم تمريرها عن طريق المرجع أو بالقيمة.

لماذا يتم استخدام C #؟

يتم استخدام C # لعدة أسباب ، ولكن فوائد مجموعة أدوات Microsoft CLR ومجتمع كبير للمطورين هما عاملان جذبان رئيسيان للغة.


شاهد الفيديو: Vrouw trekt kleren uit bij signeersessie Douwe Bob