这就是我想为我的项目完成的事情。
背景:教育数学网站
目标:当用户点击"初学者"一节,他会被问到一个问题。问题将被处理,如果是,他可以按"再次"然后,问了另一个随机问题。
每个问题都是动态生成的,它存储在视图中而不是模型/数据库中。
因此,我有一个.html文件,可以呈现随机选择的多个视图(即随机选择显示的问题)。
每个问题都不同。
示例问题"玛丽有8个苹果,她吃了3个她离开了多少?"
在这个问题中,我想让JavaScript打印出8张苹果图片。
另一个问题"鲍勃有6辆车,又买了4辆......"
在这个问题中,我想让JavaScript打印4辆汽车
等等...
是否可以使用一个javascript文件来检测已回答的问题类型并生成相应的graphcis,或者这是不好的做法,因为文件可能会变得非常快,我关注它可能会减慢服务器的速度。有更好的方法吗
我可以从Django视图将javascript代码发送到.js文件,这样只需要处理相关代码吗?
我已经知道如何让JavaScript做我想做的事情,我只是不确定它是最有效/优化的方式: - )
答案 0 :(得分:0)
我看到两种可能性:
您将所有数据存储在HTML中,然后首先将其隐藏,然后使用Javascript按需显示。这将导致它超级大(可能是凌乱的HTML和JS)文件。但这可以做你想要的。您只需使用HTML / CSS / JS堆栈即可完成项目。
您创建了一个非常空的HTML文件,您将使用对Django视图的AJAX调用动态修改该文件。这次是Django Ajax View逻辑会变得混乱,具体取决于你有多少问题。
因为文件可能变得非常快,我担心它可能会降低服务器速度
页面加载只会变长,具体取决于要加载的图片数量和Javascript。
我可以从Django视图将javascript代码发送到.js文件,这样只需要处理相关代码吗?
最终你可以从Django向前端发送javascript,但这样做并不是那么明智。您应该优化您的Javascript以专注于可重用性。
我不确定它是最有效/最优化的方式
最有效/优化的方式是使用数据库和Ajax随机查询问题。我的意思是,你可以用一种用于存储数据的技术做更多的事情。
就在我完成这篇文章的时候,我想知道你为什么不想使用数据库。 我想也许你无法设置数据库服务器,没关系,你可以使用SQLite。它是serverless,在我看来它会让你的项目变得如此轻松。如果我猜错了,请记住我的假设。