【问题标题】:Progressive Enhancement with Yii2Yii2 的渐进式增强
【发布时间】:2015-10-04 19:08:26
【问题描述】:

我正在尝试让我的网站同时使用已启用的 js 和未启用的 js。我刚开始。所以我开始注册一个新用户。我有一个注册链接,它工作正常。

我还有一个 JS 版本,其中表单位于模态框中。

用户控制器

/**
* register via modal box
*/
public function actionJsRegister()
{
    // get js modal #id
    $js = '$("#create").modal("show")';
    // register js code
    $this->getView()->registerJs($js); 

    $model = new User();
    $userType = $model->getUserTypeDropDown();  

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        // set flash
        Yii::$app->session->setFlash('success', 'Account Created, please check your inbox');
        // send activation email
        return $this->redirect(['site/index']);
    } else {    
        return $this->render('jsCreate', [
            'model' => $model,
            'userType' => $userType,
        ]);
    }
}

1 - 该控制器可以作为代码使用吗?

2 - 如果没有启用 js,我如何让导航栏中的链接仅显示常规版本,如果启用则显示模态版本?

【问题讨论】:

  • 为什么要浪费时间?要么使用内置的框架,要么不打扰。现在每个人都启用了 javascript。
  • Toby:是否有人支持 JS 并不是重点。在 Web 上,您无法控制执行环境。很多事情都可能导致您的基于 JavaScript 的应用程序无法正常工作(网络问题、防火墙、用户偏好、RAM 等设备限制、处理器速度等)......相信每个人都可以获得您的 JavaScript(甚至是您的 CSS 或 Web字体)只是天真。建立一个无论如何都能奏效的强大体验要好得多。

标签: jquery yii2 progressive-enhancement


【解决方案1】:

感谢您使用渐进式增强进行构建!您的网站会更加强大。

由于我没有使用过 Yii2(虽然逻辑上看起来很合理),所以我不能专门针对控制器代码说话,但我可以讨论关于导航的第二个问题。最简单的方法是让导航栏默认存在,然后使用 JavaScript 劫持页面,将导航栏转换为模式。

【讨论】:

    猜你喜欢
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多