سؤال

ما هي أفضل طريقة لتجريد كل المسافة بيضاء من موقع .NET؟ لقد وجدت هذا الموقع Whitespace Removal - 4wall Art Site

إذا نظرت إلى المصدر، فمن الواضح أنه موقع .NET ولكن يتم إزالة جميع علامات التبويب والمسافات غير المرغوب فيها. الآن لقد بحثت حولها حولها يبدو تعبيرا منتظما على الصفحة Render هو أفضل طريقة ولكن لدى أي شخص أي أمثلة؟ أو أي آراء متضاربة حول ما إذا كانت هذه هي أفضل طريقة؟ مصدر HTML على هذا الموقع إلى ~ 30 كيلو بايت وهو شيء أسعى فيه نحو!

شكرا ستيف

هل كانت مفيدة؟

المحلول

إذا لم تكن قد فعلت بعد بشكل أفضل لتشغيل Gzip / Dyplate ضغط في IIS.. وبعد إذا كنت تحاول تقليل حركة مرور الشبكة وتحسين ضغط الأداء له تأثير أكبر ثم إزالة المساحة البيضاء.

نصائح أخرى

يجب أن لا تحاول أبدا استخدام Regex على HTML (انظر يمكنك تقديم بعض الأمثلة حول سبب صعوبة تحليل XML و HTML مع Regex؟ لماذا) لماذا). هذه هي حقا وظيفة لمحلل (انظر ما هي أفضل طريقة لتحليل HTML في C #؟ لمحللات HTML ل C #). pseudoodocode لما تريد القيام به هو

print tag and attributes with minimal spaces
if tag is in list of tags whose contents can be to modified
    strip redundant whitspace from contents
print contents
print end tag

مثال واحد على علامة لا ينبغي أن يكون محتوياتها المعدلة هي العلامة السابقة.

حسنا، إذا كنت تريد حقا يمكنك استخدام BASH 'SED' و Perl Regex سيحقق نفس الشيء:

سحق:

cat yourhtmlfile.html | sed 's_\ +_\ _g' > newReducedFile.html

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

إذا كنت تشعر حقا بالحاجة إلى إزالة مساحة بيضاء مكان للبدء سيكون للنظر في http://www.codeproject.com/kb/aspnet/whitespacefilter.aspx. ، أؤكد أن هذا يجب أن يكون فقط مكان للبدء ولا فقط نسخ التعليمات البرمجية في المقالة حيث أن المؤلف بوضوح لم يكن لديك فهم جيد للتعبيرات العادية التي يستخدمونها كثيرا بطريقة غير فعالة للغاية.

كيف يتم عرض كل ذلك تقنية استخدام عامل تصفية لتعديل إخراج جميع الصفحات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top