ما هي لغة القالب الجيدة المدعومة في JavaScript؟

StackOverflow https://stackoverflow.com/questions/128949

  •  02-07-2019
  •  | 
  •  

سؤال

تعتبر القوالب عملاً صحيًا جدًا في لغات البرمجة المعمول بها، ولكن هل هناك أي قوالب جيدة يمكن معالجتها في JavaScript؟

أعني بكلمة "قالب" المستند الذي يقبل كائن البيانات كمدخل، ويدرج البيانات في نوع ما من لغة الترميز المتسلسلة، ويخرج الترميز.الأمثلة المعروفة هي JSP, PHP الأصلي، XSLT.

بكلمة "جيد" أعني أنه من السهل على مؤلف HTML كتابته، وأنه قوي، وأنه مدعوم بلغات أخرى أيضًا.شيء أفضل من الخيارات التي أعرفها.بعض الأمثلة على "ليست جيدة":


رياضيات السلسلة:

element.innerHTML = "<p>Name: " + data.name
    + "</p><p>Email: " + data.email + "</p>";

من الواضح أنه غير عملي للغاية، وبنية HTML غير واضحة.


XSLT:

<p><xsl:text>Name: </xsl:text><xsl:value-of select="//data/name"></p>
<p><xsl:text>Email: </xsl:text><xsl:value-of select="//data/email"></p>

// يعمل هذا بشكل جيد من الناحية الهيكلية، ولكن دعونا نواجه الأمر، XSLT يربك مطوري HTML.


تريمباث:

<p>Name: ${data.name}</p><p>Email: ${data.email}</p>

// هذا جميل، لكن المعالج مدعوم فقط في جافا سكريبت، واللغة بدائية نوعًا ما (http://code.google.com/p/trimpath/wiki/JavaScriptTemplateSyntax).


أرغب في رؤية مجموعة فرعية من JSP أو ASP أو PHP منقولة إلى المتصفح، لكنني لم أجد ذلك.

ما الذي يستخدمه الأشخاص هذه الأيام في JavaScript لتصميم قوالبهم؟

إضافة

بعد بضعة أشهر، تم نشر الكثير من لغات النماذج القابلة للتطبيق هنا، ولكن معظمها غير قابل للاستخدام بأي لغة أخرى.لا يمكن استخدام معظم هذه القوالب خارج محرك JavaScript.

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

شكرا لجميع المدخلات حتى الآن!

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

المحلول

هناك وظيفة قالب جانب العميل قادمة إلى ASP.NET AJAX 4.0 القادم.

http://encosia.com/2008/07/23/sneak-peak-aspnet-ajax-4-client-side-templates/

يمكنك أيضًا استخدام مكتبة Microsoft AJAX (وهي جزء JavaScript من ASP.NET AJAX) بمفردها، دون استخدام ASP.NET.

http://www.asp.net/ajax/downloads/

نصائح أخرى

جون ريسيج لديه محرك قوالب جافا سكريبت صغير في http://ejohn.org/blog/javascript-micro-templates/

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

لقد مررت بهذا اليوم، لكني لم أجربه..

http://beebole.com/pure/

قوالب الإغلاق نظام قوالب قوي إلى حد ما من Google، ويعمل مع كل من Javascript وJava.لقد كانت لدي تجارب جيدة في استخدامها.

ExtJS يحتوي على فئة قوالب استثنائية تسمى Ext.XTemplate: http://extjs.com/deploy/dev/docs/?class=Ext.XTemplate

أنا أستعمل إغلاق جوجل قوالب. http://code.google.com/closure/templates/docs/helloworld_js.html

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

تينجين http://www.kuwata-lab.com/tenjin/ قد يكون ما تبحث عنه.لم أستخدمه، لكنه يبدو جيدًا.

كتبت http://google-caja.googlecode.com/svn/changes/mikesamuel/string-interpolation-29-Jan-2008/trunk/src/js/com/google/caja/interp/index.html الذي يصف نظام القوالب الذي يقوم بتثبيت استيفاء السلسلة على جافا سكريبت بطريقة تمنع هجمات XSS عن طريق اختيار نظام الهروب الصحيح بناءً على السياق السابق.

فيما يلي واحدة تم تنفيذها في jQuery للغة القوالب Smarty. http://www.balupton.com/sandbox/jquery-smarty/demo/

إحدى الميزات الرائعة هي دعم التحديثات الديناميكية.لذا، إذا قمت بتحديث متغير قالب، فسيتم تحديثه في أي مكان في القالب حيث يتم استخدام هذا المتغير.أنيق جدا.

يمكنك أيضًا ربط التغييرات المتغيرة باستخدام حدث onchange.وهذا مفيد لنقول تأثيرات الأداء أو AJAX عندما نقول يتغير المتغير "الصفحة" ؛-)

إذا كنت تستخدم النصي# قد ترغب في النظر فيها SharpTemplate, ، محرك قوالب HTML مكتوب بقوة وفائق الكفاءة.

القوالب البعيدة http://code.google.com/p/distalيشبه إلى حد ما عرض XSLT الخاص بك ولكنه أبسط:

<p>Name: <span data-qtext="data.name"></span></p>
<p>Email: <span data-qtext="data.email"></span></p>

إذا كنت تستخدم وحيد القرن (تطبيق Java لـ JavaScript) يمكنك تشغيل لغة قالب JavaScript التي تختارها على الخادم أيضًا.

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

...ولكن الآن بعد مرور 5 سنوات (أي عام 2016)، مع Java 8، ستستخدم Nashorn بدلاً من Rhino.فيما يلي مقدمة إلى Nashorn، وإذا قمت بالتمرير لأسفل قليلاً، فستجد مثالاً على Nashorn + لغة قالب Mustahce:http://www.Oracle.com/technetwork/articles/Java/jf14-nashorn-2126515.html

(أنا شخصيًا أستخدم جانب خادم React.js، عبر Nashorn (لكن React ليست لغة نموذجية).)

ربما يكون أحد الخيارات المثيرة للاهتمام هو https://github.com/rexxars/react-markdown وهي طريقة مثيرة للاهتمام إلى حد ما لتضمين تخفيض السعر في واجهة مستخدم الويب المستندة إلى React.لقد قمت باختباره، ويعمل بشكل جيد إلى حد معقول، على الرغم من أن المستندات قادتني إلى فهم أن عرض HTML قد واجه بعض المشكلات في الفرع 3.x.ومع ذلك، يبدو أنه خيار قابل للتطبيق لاستخدامات معينة.

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