نحن نعلم أن طريقة إنشاء صفحات ثابتة تستخدم بشكل عام لاستخدام القوالب. أنا أعرف هذا. الآن أريد حفظ رمز HTML الذي تم إنشاؤه بواسطة ملف ASP مباشرة في صفحة ثابتة. هذا مناسب جدًا لصنع الصفحة الرئيسية. في ذلك الوقت ، بحثت عن محتوى على الإنترنت ووجدت هذا: "طريقة لإنشاء صفحات HTML ثابتة بدون قوالب": //www.vevb.com/html/200609/984.htm. جربته ويمكن القيام به ، ولكن عندما يكون الملف كبيرًا ، سيحدث خطأ. ما هو السبب؟ هل هناك أي قيود على الملف المخزن في Textarea أو غيرها؟ لقد بحثت في الإنترنت مرارًا وتكرارًا ونشرت منشورًا على IECN للحصول على المساعدة. حاولت وحاولت مرة أخرى ووجدت أن هناك قيودًا على النموذج. لقد وجدت مشكلة حل القيود على الإنترنت.
ها هو إعادة النشر:
عندما تكون كمية البيانات المرسلة بواسطة النموذج كبيرة ، سيتم الإبلاغ عن خطأ. بالنظر إلى MSDN ، تم تعلم أن السبب هو أن Microsoft لديها حد على الحد الأقصى للبيانات التي يمكن استلامها باستخدام request.form () ، 80k بايت في IIS4 و 100K بايت في IIS5.
فيما يلي بعض الحلول التي قدمتها Microsoft:
1. استخدم request.binaryRead بدلاً من طريقة الطلب.
2. استخدم مخطط تحميل الملف ، مثل: Microsoft PostingAcceptor ؛
3. بما أن الحد الأقصى البالغ 102399 هو لكل عنصر نموذج ، عند التقديم ، يتم تقسيم محتوى عنصر النموذج الذي يزيد عن 102399 إلى عناصر نموذج متعددة لتقديمها.
ما يلي هو رمز العينة: (تذكرت Microsoft: قد لا يكون الرمز التالي قابلاً للتطبيق تمامًا على الاحتياجات المحددة ولن يكون مسؤولاً عن عواقب استخدام هذه الرموز!)
نسخة الكود كما يلي:
<formmethod = postAction = bargepost.aspname = theformonsubmit = "breakitup ()">
<TextArearows = 3Cols = 100Name = bigtextarea> abunchoftext ... </textarea>
<inputType = submitValue = go>
</form>
<scriptLanguage = javaScript>
وظيفة breakitup ()
{
// setTheLimitForFieldsize.
// إذا كان المحتوى يحتوي على أحرف صينية ، فيمكن ضبطه على: 51100
varformlimit = 102399
// احصل على قيمة thelarge inputObject.
vartempvar = newstring
tempvar = document.theform.bigtextarea.value
// إذا كان engularyoftheObjectIsgreaterthanthelimit ، breakit
// IntomultipleObjects.
if (tempvar.length> formlimit)
{
document.theform.bigtextarea.value = tempvar.substr (0 ، formlimit)
tempvar = tempvar.substr (formlimit)
بينما (tempvar.length> 0)
{
varobjtextarea = document.createElement ("textarea")
objtextarea.name = "bigtextarea"
objtextarea.value = tempvar.substr (0 ، formlimit)
document.theform.appendchild (objtextarea)
tempvar = tempvar.substr (formlimit)